Rémi Bernon : winegstreamer: Leave the stream CS while waiting for a sample.

Alexandre Julliard julliard at winehq.org
Wed Aug 3 15:32:59 CDT 2022


Module: wine
Branch: master
Commit: efe0504f5f04a349473557e90a7484c4cac294c3
URL:    https://gitlab.winehq.org/wine/wine/-/commit/efe0504f5f04a349473557e90a7484c4cac294c3

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Tue Aug  2 11:59:16 2022 +0200

winegstreamer: Leave the stream CS while waiting for a sample.

This may call AllocateForOutput/Stream callbacks, and it may block.

---

 dlls/winegstreamer/wm_asyncreader.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/dlls/winegstreamer/wm_asyncreader.c b/dlls/winegstreamer/wm_asyncreader.c
index 9d8c2be45cb..a4dc077d341 100644
--- a/dlls/winegstreamer/wm_asyncreader.c
+++ b/dlls/winegstreamer/wm_asyncreader.c
@@ -88,7 +88,9 @@ static DWORD WINAPI stream_thread(void *arg)
 
     while (reader->running)
     {
+        LeaveCriticalSection(&reader->stream_cs);
         hr = wm_reader_get_stream_sample(&reader->reader, callback_advanced, 0, &sample, &pts, &duration, &flags, &stream_number);
+        EnterCriticalSection(&reader->stream_cs);
         if (hr != S_OK)
             break;
 




More information about the wine-cvs mailing list