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

Takashi Yano tyan0@sourceware.org
Sun Sep 17 13:41:21 GMT 2023


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

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


More information about the Cygwin-cvs mailing list