// CONSTRUCTOR //------------------------------------------------------------------------------ JobQueue::JobQueue( uint32_t numWorkerThreads ) : m_NumLocalJobsActive( 0 ), m_DistributableAvailableJobs( 1024, true ), m_DistributableJobsMemoryUsage( 0 ), m_DistributedJobsRemote( 1204, true ), m_DistributedJobsLocal( 128, true ), m_DistributedJobsCancelled( 128, true ), m_CompletedJobs( 1024, true ), m_CompletedJobsFailed( 1024, true ), m_CompletedJobs2( 1024, true ), m_CompletedJobsFailed2( 1024, true ), m_Workers( numWorkerThreads, false ) { WorkerThread::InitTmpDir(); for ( uint32_t i=0; i<numWorkerThreads; ++i ) { // identify each worker with an id starting from 1 // (the "main" thread is considered 0) uint32_t threadIndex = ( i + 1 ); WorkerThread * wt = FNEW( WorkerThread( threadIndex ) ); wt->Init(); m_Workers.Append( wt ); } }
// CONSTRUCTOR //------------------------------------------------------------------------------ JobQueueRemote::JobQueueRemote( uint32_t numWorkerThreads ) : m_PendingJobs( 1024, true ), m_CompletedJobs( 1024, true ), m_CompletedJobsFailed( 1024, true ), m_Workers( numWorkerThreads, false ) { WorkerThread::InitTmpDir( true ); // remote == true for ( uint32_t i=0; i<numWorkerThreads; ++i ) { // identify each worker with an id starting from 1 // (the "main" thread is considered 0) uint32_t threadIndex = ( i + 1001 ); WorkerThread * wt = FNEW( WorkerThreadRemote( threadIndex ) ); wt->Init(); m_Workers.Append( wt ); } }