summaryrefslogtreecommitdiff
path: root/Source/Core/Common/WorkQueueThread.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/Common/WorkQueueThread.h')
-rw-r--r--Source/Core/Common/WorkQueueThread.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/Source/Core/Common/WorkQueueThread.h b/Source/Core/Common/WorkQueueThread.h
index 7d3d9395fb..2a756f3d7e 100644
--- a/Source/Core/Common/WorkQueueThread.h
+++ b/Source/Core/Common/WorkQueueThread.h
@@ -91,7 +91,7 @@ public:
}
// Doesn't return until the most recent function invocation has finished.
- void Flush()
+ void FlushOne()
{
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(); }
private: