diff --git a/src/sfizz/FilePool.cpp b/src/sfizz/FilePool.cpp index cc0ed7b8..65a3b357 100644 --- a/src/sfizz/FilePool.cpp +++ b/src/sfizz/FilePool.cpp @@ -377,7 +377,7 @@ void sfz::FilePool::clearingThread() void sfz::FilePool::loadingThread() noexcept { FilePromisePtr promise; - while (!quitThread) { + do { workerBarrier.wait(); if (emptyQueue) { @@ -389,6 +389,9 @@ void sfz::FilePool::loadingThread() noexcept continue; } + if (quitThread) + return; + if (!promiseQueue.try_pop(promise)) { continue; } @@ -418,7 +421,7 @@ void sfz::FilePool::loadingThread() noexcept } promise.reset(); - } + } while (1); } void sfz::FilePool::clear()