diff --git a/src/ChangeLog b/src/ChangeLog index 04083bf8b..08c2ac0e8 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,9 @@ 2002-08-19 Pavel Roskin + * subshell.c (synchronize): Workaround for Cygwin (should not be + needed for the next version) - remove SIGCHLD blocking from + old_mask. + * dlg.h: Remove all unused flags for create_dlg(). Adjust all dependencies. diff --git a/src/subshell.c b/src/subshell.c index 678f236e6..f3d2a6f57 100644 --- a/src/subshell.c +++ b/src/subshell.c @@ -1039,6 +1039,12 @@ static void synchronize (void) sigaddset (&sigchld_mask, SIGCHLD); sigprocmask (SIG_BLOCK, &sigchld_mask, &old_mask); + /* + * SIGCHLD should not be blocked, but we unblock it just in case. + * This is known to be useful for cygwin 1.3.12 and older. + */ + sigdelset (&old_mask, SIGCHLD); + /* Wait until the subshell has stopped */ while (subshell_alive && !subshell_stopped) sigsuspend (&old_mask);