From 8d0a02908f56da8184f2b4e8cb52acc91d76d58d Mon Sep 17 00:00:00 2001 From: Etienne Dechamps Date: Sun, 22 Jan 2023 14:52:01 +0000 Subject: [PATCH] Reset outputReady even if we didn't wait for it This fixes a bug where outputReady would get stuck on `true` forever if the application calls ASIOOutputReady() before we get a chance to block on it. Fixes #180 --- src/flexasio/FlexASIO/flexasio.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/flexasio/FlexASIO/flexasio.cpp b/src/flexasio/FlexASIO/flexasio.cpp index 1c0077a..e270ff6 100644 --- a/src/flexasio/FlexASIO/flexasio.cpp +++ b/src/flexasio/FlexASIO/flexasio.cpp @@ -999,8 +999,8 @@ namespace flexasio { if (!outputReady) { if (IsLoggingEnabled()) Log() << "Waiting for the ASIO Host Application to signal OutputReady"; outputReadyCondition.wait(outputReadyLock, [&] { return outputReady; }); - outputReady = false; } + outputReady = false; } if (IsLoggingEnabled()) Log() << "Transferring output buffers from buffer index #" << driverBufferIndex << " to PortAudio";