59 std::unique_lock<std::mutex> lock(queueMutex);
60 queueChanged.wait(lock, [
this, &item]()
62 int concurrentCompilations = 0;
65 auto selectedIter = queue.end();
66 for (
auto i = queue.begin(); i != queue.end(); ++i)
68 if (! ripeItemIsCompiling(i) &&
69 (selectedIter == queue.end() || ripeItem(i)->
hasHigherPriority(ripeItem(selectedIter))))
72 if (ripeItemIsCompiling(i))
73 ++concurrentCompilations;
77 if (selectedIter != queue.end() && concurrentCompilations < maxConcurrentCompilations)
79 item = ripeItem(selectedIter);
80 ripeItemIsCompiling(selectedIter) =
true;
116bool& VuoModuleCompilationQueue::ripeItemIsCompiling(map<
string, list< pair<Item *, bool> > >::iterator iter)
124void VuoModuleCompilationQueue::pluckRipeItem(map<
string, list< pair<Item *, bool> > >::iterator iter)