This reverts commit a22a0ad7c4f0 to apply a new patch for the same purpose.
Signed-off-by: Takashi Yano <takashi.y...@nifty.ne.jp> --- winsup/cygwin/release/3.5.6 | 3 --- winsup/cygwin/sigproc.cc | 20 +++++--------------- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/winsup/cygwin/release/3.5.6 b/winsup/cygwin/release/3.5.6 index 0fff0de40..d17a6af53 100644 --- a/winsup/cygwin/release/3.5.6 +++ b/winsup/cygwin/release/3.5.6 @@ -7,6 +7,3 @@ Fixes: - Fix a regression since 3.5.0 which fails to use POSIX semantics in unlink/rename on NTFS. - -- Fix zsh hang at startup. - Addresses: https://cygwin.com/pipermail/cygwin/2024-December/256954.html diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 35ec3e70e..ba7818a68 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -751,14 +751,10 @@ sig_send (_pinfo *p, siginfo_t& si, _cygtls *tls) res = WriteFile (sendsig, leader, packsize, &nb, NULL); if (!res || packsize == nb) break; - if (cygwait (NULL, 10, cw_sig_eintr) == WAIT_SIGNALED - && pack.si.si_signo != __SIGFLUSHFAST) + if (cygwait (NULL, 10, cw_sig_eintr) == WAIT_SIGNALED) _my_tls.call_signal_handler (); res = 0; } - /* Re-assert signal_arrived which has been cleared in cygwait(). */ - if (_my_tls.current_sig) - _my_tls.set_signal_arrived (); if (!res) { @@ -789,16 +785,7 @@ sig_send (_pinfo *p, siginfo_t& si, _cygtls *tls) if (wait_for_completion) { sigproc_printf ("Waiting for pack.wakeup %p", pack.wakeup); - do - { - rc = cygwait (pack.wakeup, WSSC, cw_sig_eintr); - if (rc == WAIT_SIGNALED && pack.si.si_signo != __SIGFLUSHFAST) - _my_tls.call_signal_handler (); - } - while (rc != WAIT_OBJECT_0 && rc != WAIT_TIMEOUT); - /* Re-assert signal_arrived which has been cleared in cygwait(). */ - if (_my_tls.current_sig) - _my_tls.set_signal_arrived (); + rc = cygwait (pack.wakeup, WSSC); ForceCloseHandle (pack.wakeup); } else @@ -819,6 +806,9 @@ sig_send (_pinfo *p, siginfo_t& si, _cygtls *tls) rc = -1; } + if (wait_for_completion && si.si_signo != __SIGFLUSHFAST) + _my_tls.call_signal_handler (); + out: if (communing && rc) { -- 2.45.1