OSDN Git Service

* dcrt0.cc (do_exit): Only call sigproc_terminate from one location --
authorcgf <cgf>
Tue, 20 Sep 2005 02:06:54 +0000 (02:06 +0000)
committercgf <cgf>
Tue, 20 Sep 2005 02:06:54 +0000 (02:06 +0000)
commitca1dcd9225bb440ba33ed98ad5a8d5c1fe6ff29b
treee90e0cc116e2a6bc9a63424757ffac9ed58343b7
parent885aed34c5d26e66961a125d893c5d4eff39ff0b
* dcrt0.cc (do_exit): Only call sigproc_terminate from one location --
pinfo::exit.
* pinfo.cc (pinfo::exit): Move sigproc_terminate later so that signals can be
processed while waiting for hExeced child.
(pinfo::maybe_set_exit_code_from_windows): Set exit code from sigExeced if it
is non-zero.  Set exit_state to ES_EXEC_EXIT prior to waiting for captive
process exit code.
* exceptions.cc (sigExeced): New global variable.
(signal_exit): Remove noreturn attribute from declaration.
(signal_exit): Just terminate captive process and return if hExeced on the
theory that the exit will be subsequently handled in the main thread.
* sigproc.cc (sigproc_terminate): Eliminate test for ES_SIGPROCTERMINATE and
use ES_FINAL instead.
(sig_send): Use no_signals_available instead of duplicate test.
* winsup.h (ES_EXEC_EXIT): New enum.
(ES_SIGPROCTERMINATE): Delete.
winsup/cygwin/ChangeLog
winsup/cygwin/dcrt0.cc
winsup/cygwin/exceptions.cc
winsup/cygwin/pinfo.cc
winsup/cygwin/sigproc.cc
winsup/cygwin/winsup.h