From fd47a098084e4b5087af68e98c81ebf1f20732a5 Mon Sep 17 00:00:00 2001 From: dmitrykos Date: Tue, 22 Jun 2010 19:53:00 +0000 Subject: [PATCH] wasapi: fixed very rare bug causing a dead looping if WASAPI input stream is being aborted --- src/hostapi/wasapi/pa_win_wasapi.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/hostapi/wasapi/pa_win_wasapi.c b/src/hostapi/wasapi/pa_win_wasapi.c index 65e6ba7..990a142 100644 --- a/src/hostapi/wasapi/pa_win_wasapi.c +++ b/src/hostapi/wasapi/pa_win_wasapi.c @@ -3361,6 +3361,10 @@ static HRESULT ProcessInputBuffer(PaWasapiStream *stream, PaWasapiHostProcessor for (;;) { + // Check if blocking call must be interrupted + if (WaitForSingleObject(stream->hCloseRequest, 1) != WAIT_TIMEOUT) + break; + // Get the available data in the shared buffer. if ((hr = IAudioCaptureClient_GetBuffer(stream->cclient, &data, &frames, &flags, NULL, NULL)) != S_OK) { -- 2.43.0