Scippy

SCIP

Solving Constraint Integer Programs

SCIP_ThreadPool Struct Reference

Detailed Description

The thread pool

Definition at line 52 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
 
SCIP_LOCK poollock
 
SCIP_CONDITION queuenotempty
 
SCIP_CONDITION queuenotfull
 
SCIP_CONDITION queueempty
 
SCIP_CONDITION jobfinished
 

Field Documentation

◆ nthreads

int SCIP_ThreadPool::nthreads

number of threads in the pool

Definition at line 55 of file tpi_tnycthrd.c.

◆ queuesize

int SCIP_ThreadPool::queuesize

the total number of items to enter the queue

Definition at line 56 of file tpi_tnycthrd.c.

Referenced by jobQueueAddJob().

◆ threads

thrd_t* SCIP_ThreadPool::threads

the threads included in the pool

Definition at line 59 of file tpi_tnycthrd.c.

◆ jobqueue

SCIP_JOBQUEUE* SCIP_ThreadPool::jobqueue

the job queue

Definition at line 60 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 61 of file tpi_tnycthrd.c.

◆ finishedjobs

SCIP_JOBQUEUE* SCIP_ThreadPool::finishedjobs

finished jobs that are not yet collected

Definition at line 63 of file tpi_tnycthrd.c.

◆ currworkingthreads

int SCIP_ThreadPool::currworkingthreads

the threads currently processing jobs

Definition at line 64 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 65 of file tpi_tnycthrd.c.

◆ currentid

int SCIP_ThreadPool::currentid

current job id

Definition at line 66 of file tpi_tnycthrd.c.

◆ shutdown

SCIP_Bool SCIP_ThreadPool::shutdown

indicates whether the pool needs to be shutdown

Definition at line 69 of file tpi_tnycthrd.c.

Referenced by freeJobQueue().

◆ queueopen

SCIP_Bool SCIP_ThreadPool::queueopen

indicates whether the queue is open

Definition at line 70 of file tpi_tnycthrd.c.

Referenced by freeJobQueue().

◆ poollock

SCIP_LOCK SCIP_ThreadPool::poollock

mutex to allow read and write of the pool features

Definition at line 73 of file tpi_tnycthrd.c.

◆ queuenotempty

SCIP_CONDITION SCIP_ThreadPool::queuenotempty

condition to broadcast the queue has jobs

Definition at line 74 of file tpi_tnycthrd.c.

Referenced by jobQueueAddJob().

◆ queuenotfull

SCIP_CONDITION SCIP_ThreadPool::queuenotfull

condition to broadcast the queue is not full

Definition at line 75 of file tpi_tnycthrd.c.

◆ queueempty

SCIP_CONDITION SCIP_ThreadPool::queueempty

condition to broadcast that the queue is empty

Definition at line 76 of file tpi_tnycthrd.c.

◆ jobfinished

SCIP_CONDITION SCIP_ThreadPool::jobfinished

condition to broadcast that a job has been finished

Definition at line 77 of file tpi_tnycthrd.c.