From 5928218b62903528993e0f0080de63eb5a086a96 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Thu, 6 Aug 2020 16:44:39 +0200 Subject: [PATCH] Use the spinlock mutex in FilePool --- src/sfizz/FilePool.cpp | 4 ++-- src/sfizz/FilePool.h | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sfizz/FilePool.cpp b/src/sfizz/FilePool.cpp index 9bec98ef..8c474e9f 100644 --- a/src/sfizz/FilePool.cpp +++ b/src/sfizz/FilePool.cpp @@ -361,7 +361,7 @@ void sfz::FilePool::setPreloadSize(uint32_t preloadSize) noexcept void sfz::FilePool::tryToClearPromises() { - const std::lock_guard promiseLock { promiseGuard }; + const std::lock_guard promiseLock { promiseGuard }; for (auto& promise: promisesToClear) { if (promise->dataStatus != FilePromise::DataStatus::Wait) @@ -442,7 +442,7 @@ void sfz::FilePool::clear() void sfz::FilePool::cleanupPromises() noexcept { - const std::unique_lock lock { promiseGuard, std::try_to_lock }; + const std::unique_lock lock { promiseGuard, std::try_to_lock }; if (!lock.owns_lock()) return; diff --git a/src/sfizz/FilePool.h b/src/sfizz/FilePool.h index 2547591f..cbec5f8f 100644 --- a/src/sfizz/FilePool.h +++ b/src/sfizz/FilePool.h @@ -32,6 +32,7 @@ #include "AudioSpan.h" #include "FileId.h" #include "SIMDHelpers.h" +#include "utility/SpinMutex.h" #include "ghc/fs_std.hpp" #include #include @@ -288,7 +289,7 @@ private: std::vector emptyPromises; std::vector temporaryFilePromises; std::vector promisesToClear; - std::mutex promiseGuard; + SpinMutex promiseGuard; // Preloaded data absl::flat_hash_map preloadedFiles;