From 26d63a92f0fdcf2c9af6a1e5f6634acbbedbb8c4 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Tue, 23 Jun 2020 04:01:35 +0200 Subject: [PATCH] Rewrite the loading loop to check quit flag after waiting --- src/sfizz/FilePool.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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()