* signal.cc (abort): Only flush streams after signal handler.
This commit is contained in:
parent
7d6b567a4f
commit
c230ba2a1c
|
@ -1,3 +1,7 @@
|
||||||
|
008-06-09 Eric Blake <ebb9@byu.net>
|
||||||
|
|
||||||
|
* signal.cc (abort): Only flush streams after signal handler.
|
||||||
|
|
||||||
2008-06-02 Christopher Faylor <me+cygwin@cgf.cx>
|
2008-06-02 Christopher Faylor <me+cygwin@cgf.cx>
|
||||||
|
|
||||||
* cygwin.sc: Remove unrequired and erroneous definition.
|
* cygwin.sc: Remove unrequired and erroneous definition.
|
||||||
|
|
|
@ -324,16 +324,6 @@ abort (void)
|
||||||
{
|
{
|
||||||
_my_tls.incyg++;
|
_my_tls.incyg++;
|
||||||
sig_dispatch_pending ();
|
sig_dispatch_pending ();
|
||||||
/* Flush all streams as per SUSv2.
|
|
||||||
From my reading of this document, this isn't strictly correct.
|
|
||||||
The streams are supposed to be flushed prior to exit. However,
|
|
||||||
if there is I/O in any signal handler that will not necessarily
|
|
||||||
be flushed.
|
|
||||||
However this is the way FreeBSD does it, and it is much easier to
|
|
||||||
do things this way, so... */
|
|
||||||
if (_GLOBAL_REENT->__cleanup)
|
|
||||||
_GLOBAL_REENT->__cleanup (_GLOBAL_REENT);
|
|
||||||
|
|
||||||
/* Ensure that SIGABRT can be caught regardless of blockage. */
|
/* Ensure that SIGABRT can be caught regardless of blockage. */
|
||||||
sigset_t sig_mask;
|
sigset_t sig_mask;
|
||||||
sigfillset (&sig_mask);
|
sigfillset (&sig_mask);
|
||||||
|
@ -342,6 +332,10 @@ abort (void)
|
||||||
|
|
||||||
raise (SIGABRT);
|
raise (SIGABRT);
|
||||||
_my_tls.call_signal_handler (); /* Call any signal handler */
|
_my_tls.call_signal_handler (); /* Call any signal handler */
|
||||||
|
|
||||||
|
/* Flush all streams as per SUSv2. */
|
||||||
|
if (_GLOBAL_REENT->__cleanup)
|
||||||
|
_GLOBAL_REENT->__cleanup (_GLOBAL_REENT);
|
||||||
do_exit (SIGABRT); /* signal handler didn't exit. Goodbye. */
|
do_exit (SIGABRT); /* signal handler didn't exit. Goodbye. */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue