aboutsummaryrefslogtreecommitdiffstats
path: root/alc/backends/wasapi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'alc/backends/wasapi.cpp')
-rw-r--r--alc/backends/wasapi.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/alc/backends/wasapi.cpp b/alc/backends/wasapi.cpp
index f97c8636..4addad1d 100644
--- a/alc/backends/wasapi.cpp
+++ b/alc/backends/wasapi.cpp
@@ -715,10 +715,11 @@ FORCE_ALIGN int WasapiPlayback::mixerProc()
hr = mRender->GetBuffer(len, &buffer);
if(SUCCEEDED(hr))
{
- std::unique_lock<WasapiPlayback> dlock{*this};
- aluMixData(mDevice, buffer, len, mFrameStep);
- mPadding.store(written + len, std::memory_order_relaxed);
- dlock.unlock();
+ {
+ std::lock_guard<std::recursive_mutex> _{mMutex};
+ aluMixData(mDevice, buffer, len, mFrameStep);
+ mPadding.store(written + len, std::memory_order_relaxed);
+ }
hr = mRender->ReleaseBuffer(len, 0);
}
if(FAILED(hr))
@@ -1164,7 +1165,7 @@ ClockLatency WasapiPlayback::getClockLatency()
{
ClockLatency ret;
- std::lock_guard<WasapiPlayback> _{*this};
+ std::lock_guard<std::recursive_mutex> _{mMutex};
ret.ClockTime = GetDeviceClockTime(mDevice);
ret.Latency = std::chrono::seconds{mPadding.load(std::memory_order_relaxed)};
ret.Latency /= mDevice->Frequency;