The thread pool
Definition at line 92 of file tpi_tnycthrd.c.
Data Fields | |
| int | nthreads |
| int | queuesize |
| thrd_t * | threads |
| SCIP_JOBQUEUE * | jobqueue |
| SCIP_JOBQUEUE * | currentjobs |
| SCIP_JOBQUEUE * | finishedjobs |
| 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 |
| int SCIP_ThreadPool::nthreads |
number of threads in the pool
Definition at line 95 of file tpi_tnycthrd.c.
Referenced by SCIPtpiGetNumThreads().
| 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(), threadPoolAddWork(), and threadPoolThreadRetcode().
| thrd_t* SCIP_ThreadPool::threads |
the threads included in the pool
Definition at line 99 of file tpi_tnycthrd.c.
| SCIP_JOBQUEUE* SCIP_ThreadPool::jobqueue |
the job queue
Definition at line 100 of file tpi_tnycthrd.c.
Referenced by freeJobQueue(), jobQueueAddJob(), SCIPtpiCollectJobs(), threadPoolAddWork(), and threadPoolThreadRetcode().
| 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.
Referenced by SCIPtpiCollectJobs(), and threadPoolThreadRetcode().
| SCIP_JOBQUEUE* SCIP_ThreadPool::finishedjobs |
finished jobs that are not yet collected
Definition at line 103 of file tpi_tnycthrd.c.
Referenced by SCIPtpiCollectJobs(), and threadPoolThreadRetcode().
| int SCIP_ThreadPool::currworkingthreads |
the threads currently processing jobs
Definition at line 104 of file tpi_tnycthrd.c.
Referenced by threadPoolThreadRetcode().
| 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.
Referenced by threadPoolAddWork(), and threadPoolThreadRetcode().
| int SCIP_ThreadPool::currentid |
current job id
Definition at line 106 of file tpi_tnycthrd.c.
Referenced by SCIPtpiGetNewJobID(), and SCIPtpiSubmitJob().
| 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(), threadPoolAddWork(), and threadPoolThreadRetcode().
| SCIP_Bool SCIP_ThreadPool::queueopen |
indicates whether the queue is open
Definition at line 110 of file tpi_tnycthrd.c.
Referenced by freeJobQueue(), and threadPoolAddWork().
| mtx_t SCIP_ThreadPool::poollock |
mutex to allow read and write of the pool features
Definition at line 113 of file tpi_tnycthrd.c.
Referenced by SCIPtpiCollectJobs(), SCIPtpiGetNewJobID(), threadPoolAddWork(), and threadPoolThreadRetcode().
| cnd_t SCIP_ThreadPool::queuenotempty |
condition to broadcast the queue has jobs
Definition at line 114 of file tpi_tnycthrd.c.
Referenced by jobQueueAddJob(), and threadPoolThreadRetcode().
| cnd_t SCIP_ThreadPool::queuenotfull |
condition to broadcast the queue is not full
Definition at line 115 of file tpi_tnycthrd.c.
Referenced by threadPoolAddWork(), and threadPoolThreadRetcode().
| cnd_t SCIP_ThreadPool::queueempty |
condition to broadcast that the queue is empty
Definition at line 116 of file tpi_tnycthrd.c.
Referenced by threadPoolThreadRetcode().
| cnd_t SCIP_ThreadPool::jobfinished |
condition to broadcast that a job has been finished
Definition at line 117 of file tpi_tnycthrd.c.
Referenced by SCIPtpiCollectJobs().