summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdlib/abort.c
diff options
context:
space:
mode:
authormarc <marc@openbsd.org>2002-11-03 23:58:38 +0000
committermarc <marc@openbsd.org>2002-11-03 23:58:38 +0000
commit7a602fd2b428bfeb32b5d1f6fed10c2aa08f9b33 (patch)
tree29843764569cf29b08f13e195f7b0249a98aec7b /lib/libc/stdlib/abort.c
parentlibc changes for thread safety. Tested on: (diff)
downloadwireguard-openbsd-7a602fd2b428bfeb32b5d1f6fed10c2aa08f9b33.tar.xz
wireguard-openbsd-7a602fd2b428bfeb32b5d1f6fed10c2aa08f9b33.zip
back out previous patch.. there are still some vax/m68k issues
Diffstat (limited to 'lib/libc/stdlib/abort.c')
-rw-r--r--lib/libc/stdlib/abort.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/libc/stdlib/abort.c b/lib/libc/stdlib/abort.c
index 6fffe3df7c2..7252cd8a8b2 100644
--- a/lib/libc/stdlib/abort.c
+++ b/lib/libc/stdlib/abort.c
@@ -32,7 +32,7 @@
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static char *rcsid = "$OpenBSD: abort.c,v 1.9 2002/11/03 20:36:43 marc Exp $";
+static char *rcsid = "$OpenBSD: abort.c,v 1.10 2002/11/03 23:58:39 marc Exp $";
#endif /* LIBC_SCCS and not lint */
#include <signal.h>
@@ -55,7 +55,11 @@ abort()
* any errors -- X311J doesn't allow abort to return anyway.
*/
sigdelset(&mask, SIGABRT);
+#ifdef _THREAD_SAFE
(void)_thread_sys_sigprocmask(SIG_SETMASK, &mask, (sigset_t *)NULL);
+#else /* _THREAD_SAFE */
+ (void)sigprocmask(SIG_SETMASK, &mask, (sigset_t *)NULL);
+#endif /* _THREAD_SAFE */
/*
* POSIX requires we flush stdio buffers on abort
@@ -76,7 +80,11 @@ abort()
* it again, only harder.
*/
(void)signal(SIGABRT, SIG_DFL);
+#ifdef _THREAD_SAFE
(void)_thread_sys_sigprocmask(SIG_SETMASK, &mask, (sigset_t *)NULL);
+#else /* _THREAD_SAFE */
+ (void)sigprocmask(SIG_SETMASK, &mask, (sigset_t *)NULL);
+#endif /* _THREAD_SAFE */
(void)kill(getpid(), SIGABRT);
exit(1);
}