Rewrite the loading loop to check quit flag after waiting

This commit is contained in:
Jean Pierre Cimalando 2020-06-23 04:01:35 +02:00
parent f25dd03db0
commit 26d63a92f0

View file

@ -377,7 +377,7 @@ void sfz::FilePool::clearingThread()
void sfz::FilePool::loadingThread() noexcept void sfz::FilePool::loadingThread() noexcept
{ {
FilePromisePtr promise; FilePromisePtr promise;
while (!quitThread) { do {
workerBarrier.wait(); workerBarrier.wait();
if (emptyQueue) { if (emptyQueue) {
@ -389,6 +389,9 @@ void sfz::FilePool::loadingThread() noexcept
continue; continue;
} }
if (quitThread)
return;
if (!promiseQueue.try_pop(promise)) { if (!promiseQueue.try_pop(promise)) {
continue; continue;
} }
@ -418,7 +421,7 @@ void sfz::FilePool::loadingThread() noexcept
} }
promise.reset(); promise.reset();
} } while (1);
} }
void sfz::FilePool::clear() void sfz::FilePool::clear()