diff --git a/src/sfizz/FilePool.cpp b/src/sfizz/FilePool.cpp index ca437d52..5be67c6e 100644 --- a/src/sfizz/FilePool.cpp +++ b/src/sfizz/FilePool.cpp @@ -476,13 +476,14 @@ void sfz::FilePool::dispatchingJob() noexcept continue; } + std::lock_guard guard { loadingJobsMutex }; + if (filesToLoad.try_pop(queuedData)) { loadingJobs.push_back( threadPool.enqueue([this](const QueuedFileData& data) { loadingJob(data); }, queuedData)); } // Clear finished jobs - std::lock_guard guard { loadingJobsMutex }; swapAndPopAll(loadingJobs, [](std::future& future) { return future.wait_for(std::chrono::seconds(0)) == std::future_status::ready; });