Add numberOfCurrentlyRunningTasks to Workers

This commit is contained in:
Vinnie Falco
2013-08-12 06:58:14 -07:00
parent 2fa132f9cc
commit 6fbc45a45d
2 changed files with 28 additions and 4 deletions

View File

@@ -96,6 +96,8 @@ void Workers::pauseAllThreadsAndWait ()
setNumberOfThreads (0);
m_allPaused.wait ();
bassert (numberOfCurrentlyRunningTasks () == 0);
}
void Workers::addTask ()
@@ -103,6 +105,11 @@ void Workers::addTask ()
m_semaphore.signal ();
}
int Workers::numberOfCurrentlyRunningTasks () const noexcept
{
return m_runningTaskCount.get ();
}
void Workers::deleteWorkers (LockFreeStack <Worker>& stack)
{
for (;;)
@@ -176,7 +183,9 @@ void Workers::Worker::run ()
// We couldn't pause so we must have gotten
// unblocked in order to process a task.
//
++m_workers.m_runningTaskCount;
m_workers.m_callback.processTask ();
--m_workers.m_runningTaskCount;
}
// Any worker that goes into the paused list must