assert(_jobqueues !=
NULL);
208waitnum = ++condition->_waitnum;
210++condition->_waiters;
217 #pragma omp taskyield 220 while( condition->_signals < waitnum );
222--condition->_waiters;
224 if( condition->_waiters == 0 )
226condition->_signals = 0;
227condition->_waitnum = 0;
247waitnum = ++condition->_waitnum;
249++condition->_waiters;
256 #pragma omp taskyield 259 while( condition->_signals < waitnum );
261--condition->_waiters;
263 if( condition->_waiters == 0 )
265condition->_signals = 0;
266condition->_waitnum = 0;
336assert(newjob !=
NULL);
373 #pragma omp task firstprivate(newjob) 386assert( condition !=
NULL);
390 if( condition->_waitnum > condition->_signals )
391++condition->_signals;
404assert( condition !=
NULL);
407condition->_signals = condition->_waitnum;
419 returnomp_get_num_threads();
426 returnomp_get_thread_num();
439(*job)->jobid = jobid;
440(*job)->jobfunc = jobfunc;
441(*job)->args = jobarg;
442(*job)->nextjob =
NULL;
452 static intcurrentjobid = 0;
455 #pragma omp atomic capture 456jobid = ++currentjobid;
467assert(_jobqueues !=
NULL);
486 for( i = 0; i < _jobqueues->
nthreads; ++i )
510 if( currjob->
jobid== jobid )
549 if( currjob->
jobid== jobid )
561 if( prevjob !=
NULL)
603assert(_jobqueues ==
NULL);
615assert(_jobqueues !=
NULL);
638omp_init_lock(&(*lock)->lock);
649omp_destroy_lock(&(*lock)->lock);
658omp_set_lock(&
lock->lock);
667omp_unset_lock(&
lock->lock);
681assert(condition !=
NULL);
685omp_init_lock(&(*condition)->_lock);
686(*condition)->_waiters = 0;
687(*condition)->_waitnum = 0;
688(*condition)->_signals = 0;
698assert((*condition)->_waiters == 0);
699assert((*condition)->_waitnum == 0);
700assert((*condition)->_signals == 0);
702omp_destroy_lock(&(*condition)->_lock);
719assert(name !=
NULL);
721(void)
SCIPsnprintf(name, namesize,
"OpenMP %d", _OPENMP);
730assert(desc !=
NULL);
732(void)
SCIPsnprintf(desc, descsize,
"shared-memory multiprocessing library (openmp.org)");
#define SCIP_CALL_ABORT(x)
int SCIPsnprintf(char *t, int len, const char *s,...)
memory allocation routines
#define BMSfreeMemory(ptr)
#define BMSallocMemoryArray(ptr, num)
#define BMSfreeMemoryArray(ptr)
#define BMSallocMemory(ptr)
public methods for message output
public data structures and miscellaneous methods
SCIP_JOBQUEUE finishedjobs
SCIP_CONDITION jobfinished
struct SCIP_Job * nextjob
SCIP_RETCODE(* jobfunc)(void *args)
the type definitions for the SCIP parallel interface
#define SCIPompInitLock(lock)
SCIP_Bool SCIPtpiIsAvailable(void)
#define SCIPompAcquireLock(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)
SCIP_RETCODE SCIPtpiAcquireLock(SCIP_LOCK *lock)
#define SCIPompReleaseLock(lock)
#define SCIPompDestroyLock(lock)
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 SCIPtpiSubmitJob(SCIP_JOB *job, SCIP_SUBMITSTATUS *status)
void SCIPtpiDestroyLock(SCIP_LOCK **lock)
void SCIPtpiGetLibraryDesc(char *desc, int descsize)
SCIP_RETCODE SCIPtpiCollectJobs(int jobid)
static SCIP_RETCODE SCIPompWaitCondition(SCIP_CONDITION *condition, omp_lock_t *lock)
static SCIP_RETCODE createJobQueue(int nthreads, int qsize, SCIP_Bool blockwhenfull)
static SCIP_Bool isJobRunning(int jobid)
static SCIP_Bool isJobWaiting(int jobid)
void SCIPtpiDestroyCondition(SCIP_CONDITION **condition)
#define SCIPompDestroyCondition(condition)
int SCIPtpiGetNewJobID(void)
void SCIPtpiGetLibraryName(char *name, int namesize)
SCIP_RETCODE SCIPtpiInitLock(SCIP_LOCK **lock)
int SCIPtpiGetThreadNum()
SCIP_RETCODE SCIPtpiReleaseLock(SCIP_LOCK *lock)
SCIP_RETCODE SCIPtpiInitCondition(SCIP_CONDITION **condition)
SCIP_RETCODE SCIPtpiInit(int nthreads, int queuesize, SCIP_Bool blockwhenfull)
#define SCIPompInitCondition(condition)
enum SCIP_Retcode SCIP_RETCODE
enum SCIP_Submitstatus SCIP_SUBMITSTATUS
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4