WorkQueueThread: Implement proper Flush
and rename the existing Flush to FlushOne.
This commit is contained in:
parent
9badcc6eb8
commit
9affbfe683
|
@ -91,7 +91,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
// Doesn't return until the most recent function invocation has finished.
|
// Doesn't return until the most recent function invocation has finished.
|
||||||
void Flush()
|
void FlushOne()
|
||||||
{
|
{
|
||||||
if (m_thread.joinable())
|
if (m_thread.joinable())
|
||||||
{
|
{
|
||||||
|
@ -101,6 +101,17 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Doesn't return until the queue is empty.
|
||||||
|
void Flush()
|
||||||
|
{
|
||||||
|
if (m_thread.joinable())
|
||||||
|
{
|
||||||
|
m_flush.Set();
|
||||||
|
m_wakeup.Set();
|
||||||
|
m_flushed.Wait();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool IsFlushing() const { return m_flush.IsSet() || m_shutdown.IsSet(); }
|
bool IsFlushing() const { return m_flush.IsSet() || m_shutdown.IsSet(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Reference in New Issue