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

commit 8484773f47ccb14a24e3b40a5b5a329ae5768f82
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 5f78821d4..03c812a9c 100644
--- a/winsup/cygwin/fhandler/dsp.cc
+++ b/winsup/cygwin/fhandler/dsp.cc
@@ -590,7 +590,8 @@ fhandler_dev_dsp::Audio_out::waitforallsent ()
   while (Qisr2app_->query () != fh->fragstotal_)
     {
       debug_printf ("%d blocks in Qisr2app", Qisr2app_->query ());
-      Sleep (100);
+      cygwait (1);
+      sendcurrent ();
     }
 }

Reply via email to