aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Threading/ProducerConsumerQueue.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-04-24 00:10:04 +0200
committerDDuarte <dnpd.dd@gmail.com>2015-04-29 00:06:19 +0100
commit88af3ffc2ad2a906fdda373c6d68d21187474f27 (patch)
tree5072882133dde88dd9369a6630bebec70203cc64 /src/server/shared/Threading/ProducerConsumerQueue.h
parent8b07f1cd4d1714379f8beeea3d13ea0af118de23 (diff)
Core/Socket: Removed unused synchronous read method
(cherry picked from commit 59e9bcf0bf44d89397f5a182e2ef21f7e3a3635d) Conflicts: src/server/game/Server/WorldSocket.cpp
Diffstat (limited to 'src/server/shared/Threading/ProducerConsumerQueue.h')
-rw-r--r--src/server/shared/Threading/ProducerConsumerQueue.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/server/shared/Threading/ProducerConsumerQueue.h b/src/server/shared/Threading/ProducerConsumerQueue.h
index ab01568309b..e2f13e5c339 100644
--- a/src/server/shared/Threading/ProducerConsumerQueue.h
+++ b/src/server/shared/Threading/ProducerConsumerQueue.h
@@ -70,7 +70,9 @@ public:
{
std::unique_lock<std::mutex> lock(_queueLock);
- _condition.wait(lock, [this]() { return !_queue.empty() || _shutdown; });
+ // we could be using .wait(lock, predicate) overload here but some threading error analysis tools produce false positives
+ while (_queue.empty() && !_shutdown)
+ _condition.wait(lock);
if (_queue.empty() || _shutdown)
return;