Scippy

SCIP

Solving Constraint Integer Programs

SCIP_ThreadPool Struct Reference

Detailed Description

The thread pool

Definition at line 92 of file tpi_tnycthrd.c.

Data Fields

int nthreads
 
int queuesize
 
thrd_t * threads
 
SCIP_JOBQUEUEjobqueue
 
SCIP_JOBQUEUEcurrentjobs
 
SCIP_JOBQUEUEfinishedjobs
 
int currworkingthreads
 
SCIP_Bool blockwhenfull
 
int currentid
 
SCIP_Bool shutdown
 
SCIP_Bool queueopen
 
mtx_t poollock
 
cnd_t queuenotempty
 
cnd_t queuenotfull
 
cnd_t queueempty
 
cnd_t jobfinished
 

Field Documentation

◆ nthreads

int SCIP_ThreadPool::nthreads

number of threads in the pool

Definition at line 95 of file tpi_tnycthrd.c.

◆ queuesize

int SCIP_ThreadPool::queuesize

the total number of items to enter the queue

Definition at line 96 of file tpi_tnycthrd.c.

Referenced by jobQueueAddJob().

◆ threads

thrd_t* SCIP_ThreadPool::threads

the threads included in the pool

Definition at line 99 of file tpi_tnycthrd.c.

◆ jobqueue

SCIP_JOBQUEUE* SCIP_ThreadPool::jobqueue

the job queue

Definition at line 100 of file tpi_tnycthrd.c.

Referenced by freeJobQueue(), and jobQueueAddJob().

◆ currentjobs

SCIP_JOBQUEUE* SCIP_ThreadPool::currentjobs

the jobs currently being processed on a thread; only a single job is allowed per thread.

Definition at line 101 of file tpi_tnycthrd.c.

◆ finishedjobs

SCIP_JOBQUEUE* SCIP_ThreadPool::finishedjobs

finished jobs that are not yet collected

Definition at line 103 of file tpi_tnycthrd.c.

◆ currworkingthreads

int SCIP_ThreadPool::currworkingthreads

the threads currently processing jobs

Definition at line 104 of file tpi_tnycthrd.c.

◆ blockwhenfull

SCIP_Bool SCIP_ThreadPool::blockwhenfull

indicates that the queue can only be as large as nthreads

Definition at line 105 of file tpi_tnycthrd.c.

◆ currentid

int SCIP_ThreadPool::currentid

current job id

Definition at line 106 of file tpi_tnycthrd.c.

◆ shutdown

SCIP_Bool SCIP_ThreadPool::shutdown

indicates whether the pool needs to be shut down

Definition at line 109 of file tpi_tnycthrd.c.

Referenced by freeJobQueue().

◆ queueopen

SCIP_Bool SCIP_ThreadPool::queueopen

indicates whether the queue is open

Definition at line 110 of file tpi_tnycthrd.c.

Referenced by freeJobQueue().

◆ poollock

mtx_t SCIP_ThreadPool::poollock

mutex to allow read and write of the pool features

Definition at line 113 of file tpi_tnycthrd.c.

◆ queuenotempty

cnd_t SCIP_ThreadPool::queuenotempty

condition to broadcast the queue has jobs

Definition at line 114 of file tpi_tnycthrd.c.

Referenced by jobQueueAddJob().

◆ queuenotfull

cnd_t SCIP_ThreadPool::queuenotfull

condition to broadcast the queue is not full

Definition at line 115 of file tpi_tnycthrd.c.

◆ queueempty

cnd_t SCIP_ThreadPool::queueempty

condition to broadcast that the queue is empty

Definition at line 116 of file tpi_tnycthrd.c.

◆ jobfinished

cnd_t SCIP_ThreadPool::jobfinished

condition to broadcast that a job has been finished

Definition at line 117 of file tpi_tnycthrd.c.