diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/shared/Database/DatabaseWorker.cpp | 2 | ||||
-rw-r--r-- | src/server/shared/Threading/ProducerConsumerQueue.h | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/server/shared/Database/DatabaseWorker.cpp b/src/server/shared/Database/DatabaseWorker.cpp index ca48ebdd811..e130429c8d0 100644 --- a/src/server/shared/Database/DatabaseWorker.cpp +++ b/src/server/shared/Database/DatabaseWorker.cpp @@ -50,7 +50,7 @@ void DatabaseWorker::WorkerThread() _queue->WaitAndPop(operation); - if (_cancelationToken) + if (_cancelationToken || !operation) return; operation->SetConnection(_connection); diff --git a/src/server/shared/Threading/ProducerConsumerQueue.h b/src/server/shared/Threading/ProducerConsumerQueue.h index 1fee1d0685f..accb0aebb11 100644 --- a/src/server/shared/Threading/ProducerConsumerQueue.h +++ b/src/server/shared/Threading/ProducerConsumerQueue.h @@ -58,7 +58,7 @@ public: { std::lock_guard<std::mutex> lock(_queueLock); - if (_queue.empty()) + if (_queue.empty() || _shutdown) return false; value = _queue.front(); @@ -77,7 +77,7 @@ public: _condition.wait(lock); } - if (_queue.empty()) + if (_queue.empty() || _shutdown) return; value = _queue.front(); |