[newlib-cygwin] Cygwin: dsp: Fix a bug that app hangs if it killed during write().

Takashi Yano tyan0@sourceware.org
Sun Sep 17 13:40:44 GMT 2023


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

commit 8484773f47ccb14a24e3b40a5b5a329ae5768f82
Author: Takashi Yano <takashi.yano@nifty.ne.jp>
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 <takashi.yano@nifty.ne.jp>

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 ();
     }
 }


More information about the Cygwin-cvs mailing list