https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=386e762aa140a18c4bc3fd5963c4bbc6e2663c76

commit 386e762aa140a18c4bc3fd5963c4bbc6e2663c76
Author: Takashi Yano <[email protected]>
Date:   Sun Sep 17 08:32:09 2023 +0900

    Cygwin: dsp: Fix a bug that app hangs if it killed during write().
    
    If app is killed during blocking write(), it sometimes hangs. This
    patch fixes the issue.
    
    Signed-off-by: Takashi Yano <[email protected]>

Diff:
---
 winsup/cygwin/fhandler/dsp.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/winsup/cygwin/fhandler/dsp.cc b/winsup/cygwin/fhandler/dsp.cc
index dbe27905a..83eea6d7d 100644
--- a/winsup/cygwin/fhandler/dsp.cc
+++ b/winsup/cygwin/fhandler/dsp.cc
@@ -589,7 +589,8 @@ fhandler_dev_dsp::Audio_out::waitforallsent ()
   while (Qisr2app_->query () != MAX_BLOCKS)
     {
       debug_printf ("%d blocks in Qisr2app", Qisr2app_->query ());
-      Sleep (100);
+      cygwait (1);
+      sendcurrent ();
     }
 }

Reply via email to