1
0
mirror of https://github.com/adtools/clib2.git synced 2025-12-08 14:59:05 +00:00

- raise() no longer resets the signal handler before it invokes the one

currently configured. It merely blocks the delivery of the respective
  signal to prevent recursion.

- raise() now drops into abort() if a signal handler is set to
  SIG_DFL. The exception is in SIGINT delivery, which has the
  effect of printing a different termination message but otherwise
  program flow takes the same path as abort().


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14907 87f5fb63-7c3d-0410-a384-fd976d0f7a62
This commit is contained in:
Olaf Barthel
2005-03-27 10:02:50 +00:00
parent df01f27551
commit 9c2c44b008
8 changed files with 101 additions and 86 deletions

View File

@ -1,5 +1,5 @@
/*
* $Id: stdlib_abort.c,v 1.3 2005-01-02 09:07:08 obarthel Exp $
* $Id: stdlib_abort.c,v 1.4 2005-03-27 10:02:50 obarthel Exp $
*
* :ts=4
*
@ -48,14 +48,18 @@
void
abort(void)
{
/* Try to call the signal handler that might be in charge of
handling cleanup operations, etc. */
raise(SIGABRT);
/* If the signal handler returns it means that we still have
to terminate the program. */
__check_abort_enabled = FALSE;
__print_termination_message(NULL);
/* Note that we drop into the exit() function which
* does not trigger the exit trap.
*/
does not trigger the exit trap. */
_exit(EXIT_FAILURE);
}