76 SCIP_Bool blockwhenfull
140 job->retcode = (*(
job->jobfunc))(
job->args);
262 #pragma omp task firstprivate(newjob)
321 #pragma omp taskyield
365 (*job)->jobid = jobid;
366 (*job)->jobfunc = jobfunc;
368 (*job)->nextjob =
NULL;
381 #pragma omp atomic capture
525 SCIP_Bool blockwhenfull
#define SCIP_CALL_ABORT(x)
assert(minobj< SCIPgetCutoffbound(scip))
memory allocation routines
#define BMSfreeMemory(ptr)
#define BMSallocMemoryArray(ptr, num)
#define BMSfreeMemoryArray(ptr)
#define BMSallocMemory(ptr)
SCIP_JOBQUEUE finishedjobs
SCIP_CONDITION jobfinished
struct SCIP_Job * nextjob
SCIP_RETCODE(* jobfunc)(void *args)
the type definitions for the SCIP parallel interface
SCIP_RETCODE SCIPtpiInitCondition(SCIP_LOCK *lock)
SCIP_RETCODE SCIPtpiAcquireLock(SCIP_LOCK *lock)
SCIP_RETCODE SCIPtpiInitLock(SCIP_LOCK *lock)
void SCIPtpiDestroyLock(SCIP_LOCK *lock)
void SCIPtpiDestroyCondition(SCIP_LOCK *lock)
SCIP_RETCODE SCIPtpiReleaseLock(SCIP_LOCK *lock)
SCIP_RETCODE SCIPtpiWaitCondition(SCIP_CONDITION *condition, SCIP_LOCK *lock)
SCIP_RETCODE SCIPtpiCreateJob(SCIP_JOB **job, int jobid, SCIP_RETCODE(*jobfunc)(void *args), void *jobarg)
SCIP_RETCODE SCIPtpiSignalCondition(SCIP_CONDITION *condition)
static SCIP_RETCODE jobQueueAddJob(SCIP_JOB *newjob)
int SCIPtpiGetNumThreads()
SCIP_RETCODE SCIPtpiExit(void)
static void executeJob(SCIP_JOB *job)
SCIP_RETCODE SCIPtpiBroadcastCondition(SCIP_CONDITION *condition)
static SCIP_RETCODE freeJobQueue(void)
static void jobQueueProcessJob(void)
SCIP_RETCODE SCIPtpiCollectJobs(int jobid)
SCIP_RETCODE SCIPtpiSumbitJob(SCIP_JOB *job, SCIP_SUBMITSTATUS *status)
static SCIP_RETCODE createJobQueue(int nthreads, int qsize, SCIP_Bool blockwhenfull)
static SCIP_Bool isJobRunning(int jobid)
static SCIP_Bool isJobWaiting(int jobid)
int SCIPtpiGetNewJobID(void)
int SCIPtpiGetThreadNum()
SCIP_RETCODE SCIPtpiInit(int nthreads, int queuesize, SCIP_Bool blockwhenfull)
enum SCIP_Retcode SCIP_RETCODE
enum SCIP_Submitstatus SCIP_SUBMITSTATUS