本文整理汇总了C++中JobQueue::isEmpty方法的典型用法代码示例。如果您正苦于以下问题:C++ JobQueue::isEmpty方法的具体用法?C++ JobQueue::isEmpty怎么用?C++ JobQueue::isEmpty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JobQueue
的用法示例。
在下文中一共展示了JobQueue::isEmpty方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: processJobs
bool JobManager::processJobs()
{
m_jobCount = 0;
m_jobsNotIdle = 0;
std::list<JobQueue*>::const_iterator it = m_queues.begin();
for (; it != m_queues.end(); ++it)
m_jobCount += (*it)->jobCount();
m_jobsProcessed = 0;
while (!m_errorOccured && m_jobsProcessed < m_jobCount) {
// Select a valid queue
std::list<JobQueue*>::iterator queueIt = m_queues.begin();
JobQueue* queue = *queueIt;
while (queue->hasShowStoppers() || queue->isEmpty()) {
queue = *(++queueIt);
if (queueIt == m_queues.end())
goto finish;
}
MutexLocker locker(&m_jobsRunningMutex);
if (m_jobsRunning >= m_maxJobsRunning)
pthread_cond_wait(&m_needJobsCond, &m_jobsRunningMutex);
if (m_errorOccured)
break;
// Now select a valid job
if (Job* job = queue->getNextJob()) {
job->addJobListenner(this);
job->run();
m_jobsRunning++;
m_jobsNotIdle++;
printReportLine(job);
}
}
finish:
MutexLocker locker(&m_jobsRunningMutex);
if (m_jobsRunning) {
Notice() << "Waiting for unfinished jobs...";
pthread_cond_wait(&m_allDoneCond, &m_jobsRunningMutex);
}
return !m_errorOccured;
}