diff --git a/src/sfizz/FilterPool.cpp b/src/sfizz/FilterPool.cpp index 164b3ea8..70811320 100644 --- a/src/sfizz/FilterPool.cpp +++ b/src/sfizz/FilterPool.cpp @@ -109,7 +109,7 @@ sfz::FilterPool::FilterPool(const MidiState& state, int numFilters) sfz::FilterHolderPtr sfz::FilterPool::getFilter(const FilterDescription& description, unsigned numChannels, int noteNumber, float velocity) { - const std::unique_lock lock { filterGuard, std::try_to_lock }; + const std::unique_lock lock { filterGuard, std::try_to_lock }; if (!lock.owns_lock()) return {}; @@ -133,7 +133,7 @@ size_t sfz::FilterPool::getActiveFilters() const size_t sfz::FilterPool::setNumFilters(size_t numFilters) { - const std::lock_guard filterLock { filterGuard }; + const std::lock_guard filterLock { filterGuard }; swapAndPopAll(filters, [](sfz::FilterHolderPtr& filter) { return filter.use_count() == 1; }); diff --git a/src/sfizz/FilterPool.h b/src/sfizz/FilterPool.h index 36db8f51..197eb8ad 100644 --- a/src/sfizz/FilterPool.h +++ b/src/sfizz/FilterPool.h @@ -3,6 +3,7 @@ #include "FilterDescription.h" #include "MidiState.h" #include "Defaults.h" +#include "utility/SpinMutex.h" #include #include #include @@ -120,7 +121,7 @@ public: */ void setSampleRate(float sampleRate); private: - std::mutex filterGuard; + SpinMutex filterGuard; float sampleRate { config::defaultSampleRate }; const MidiState& midiState; std::vector filters;