diff options
author | Christopher Faylor <me@cgf.cx> | 2001-06-26 21:03:08 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2001-06-26 21:03:08 +0000 |
commit | 07c3cd5bb1d74bd173c1b98501e3e77ff0ba862a (patch) | |
tree | 7b20c1eb9ef656c4678c3de46ff84114ddcff46e /winsup/cygwin/spawn.cc | |
parent | 32c30349694070062428a8b52f362db45bf9d0c1 (diff) | |
download | cygnal-07c3cd5bb1d74bd173c1b98501e3e77ff0ba862a.tar.gz cygnal-07c3cd5bb1d74bd173c1b98501e3e77ff0ba862a.tar.bz2 cygnal-07c3cd5bb1d74bd173c1b98501e3e77ff0ba862a.zip |
* fhandler.cc (fhandler_disk_file::fstat): Don't rely on exactly 3 characters
being read for executable test since we could be checking for less than that.
* syscalls.cc (stat_worker): Try opening the file the "correct" way first so
that #! processing can potentially happen. If that fails, then use "query
open" method.
* spawn.cc (spawn_guts): Delay processing of signal until after we've notified
parent about reparenting.
Diffstat (limited to 'winsup/cygwin/spawn.cc')
-rw-r--r-- | winsup/cygwin/spawn.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc index db2603e30..d461e532b 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -743,6 +743,7 @@ skip_arg_parsing: HANDLE waitbuf[3] = {pi.hProcess, signal_arrived, spr}; int nwait = 3; + bool saw_signal = 0; res = 0; exited = FALSE; @@ -761,8 +762,8 @@ skip_arg_parsing: break; case WAIT_OBJECT_0 + 1: sigproc_printf ("signal arrived"); - // reset_signal_arrived (); - thisframe.call_signal_handler (); + reset_signal_arrived (); + saw_signal = 1; continue; case WAIT_OBJECT_0 + 2: if (mode == _P_OVERLAY) @@ -820,6 +821,9 @@ skip_arg_parsing: } } + if (saw_signal && mode != _P_OVERLAY) + thisframe.call_signal_handler (); + MALLOC_CHECK; switch (mode) |