diff options
| author | Matt Peters <[email protected]> | 2022-01-07 07:11:45 -0700 |
|---|---|---|
| committer | Matt Peters <[email protected]> | 2022-01-07 07:11:45 -0700 |
| commit | 6bffc131a4514629dd2192882ecd1a3c763cf2fb (patch) | |
| tree | 93294018cbe3708ad62eace0c0dbce7137dbd191 /zencore | |
| parent | Implemented IsProcessRunning() on a Macintosh (diff) | |
| download | zen-6bffc131a4514629dd2192882ecd1a3c763cf2fb.tar.xz zen-6bffc131a4514629dd2192882ecd1a3c763cf2fb.zip | |
Add WaitForQuiescence RPC
Diffstat (limited to 'zencore')
| -rw-r--r-- | zencore/include/zencore/blockingqueue.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/zencore/include/zencore/blockingqueue.h b/zencore/include/zencore/blockingqueue.h index f92df5a54..a80cd52f4 100644 --- a/zencore/include/zencore/blockingqueue.h +++ b/zencore/include/zencore/blockingqueue.h @@ -50,6 +50,26 @@ public: return false; } + bool TryDequeue(T& Item) + { + if (m_CompleteAdding.load()) + { + return false; + } + + std::unique_lock Lock(m_Lock); + if (!m_Queue.empty()) + { + Item = std::move(m_Queue.front()); + m_Queue.pop_front(); + m_Size--; + + return true; + } + + return false; + } + void CompleteAdding() { if (!m_CompleteAdding.load()) |