summaryrefslogtreecommitdiff
path: root/src/lib/libc/stdlib/abort.c
diff options
context:
space:
mode:
authormarc <>2002-11-05 22:19:55 +0000
committermarc <>2002-11-05 22:19:55 +0000
commit46d7850737001c91bbb8e55a40aa9db06e2285ff (patch)
treef8fddac020c667341da9d9d290f231141b047d5d /src/lib/libc/stdlib/abort.c
parentc8b772af00b03eb1dd9425663fd4b7f60c9693bb (diff)
downloadopenbsd-46d7850737001c91bbb8e55a40aa9db06e2285ff.tar.gz
openbsd-46d7850737001c91bbb8e55a40aa9db06e2285ff.tar.bz2
openbsd-46d7850737001c91bbb8e55a40aa9db06e2285ff.zip
thread safe libc -- 2nd try. OK miod@, millert@
Thanks to miod@ for m68k and vax fixes
Diffstat (limited to 'src/lib/libc/stdlib/abort.c')
-rw-r--r--src/lib/libc/stdlib/abort.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/lib/libc/stdlib/abort.c b/src/lib/libc/stdlib/abort.c
index 7252cd8a8b..a833a1a8b7 100644
--- a/src/lib/libc/stdlib/abort.c
+++ b/src/lib/libc/stdlib/abort.c
@@ -32,7 +32,7 @@
32 */ 32 */
33 33
34#if defined(LIBC_SCCS) && !defined(lint) 34#if defined(LIBC_SCCS) && !defined(lint)
35static char *rcsid = "$OpenBSD: abort.c,v 1.10 2002/11/03 23:58:39 marc Exp $"; 35static char *rcsid = "$OpenBSD: abort.c,v 1.11 2002/11/05 22:19:55 marc Exp $";
36#endif /* LIBC_SCCS and not lint */ 36#endif /* LIBC_SCCS and not lint */
37 37
38#include <signal.h> 38#include <signal.h>
@@ -55,11 +55,7 @@ abort()
55 * any errors -- X311J doesn't allow abort to return anyway. 55 * any errors -- X311J doesn't allow abort to return anyway.
56 */ 56 */
57 sigdelset(&mask, SIGABRT); 57 sigdelset(&mask, SIGABRT);
58#ifdef _THREAD_SAFE
59 (void)_thread_sys_sigprocmask(SIG_SETMASK, &mask, (sigset_t *)NULL); 58 (void)_thread_sys_sigprocmask(SIG_SETMASK, &mask, (sigset_t *)NULL);
60#else /* _THREAD_SAFE */
61 (void)sigprocmask(SIG_SETMASK, &mask, (sigset_t *)NULL);
62#endif /* _THREAD_SAFE */
63 59
64 /* 60 /*
65 * POSIX requires we flush stdio buffers on abort 61 * POSIX requires we flush stdio buffers on abort
@@ -80,11 +76,7 @@ abort()
80 * it again, only harder. 76 * it again, only harder.
81 */ 77 */
82 (void)signal(SIGABRT, SIG_DFL); 78 (void)signal(SIGABRT, SIG_DFL);
83#ifdef _THREAD_SAFE
84 (void)_thread_sys_sigprocmask(SIG_SETMASK, &mask, (sigset_t *)NULL); 79 (void)_thread_sys_sigprocmask(SIG_SETMASK, &mask, (sigset_t *)NULL);
85#else /* _THREAD_SAFE */
86 (void)sigprocmask(SIG_SETMASK, &mask, (sigset_t *)NULL);
87#endif /* _THREAD_SAFE */
88 (void)kill(getpid(), SIGABRT); 80 (void)kill(getpid(), SIGABRT);
89 exit(1); 81 exit(1);
90} 82}