summaryrefslogtreecommitdiff
path: root/src/lib/libc/stdlib/abort.c
diff options
context:
space:
mode:
authormarc <>2002-11-03 20:36:43 +0000
committermarc <>2002-11-03 20:36:43 +0000
commitc64ae263713a52181fce5e72d090dfc2a7b7b008 (patch)
treeb118885bbe2444832b2ebdbf2ce0f9d47d30135b /src/lib/libc/stdlib/abort.c
parentdcd173929c160a1b0b50e92ba7c83d94bea3d2b2 (diff)
downloadopenbsd-c64ae263713a52181fce5e72d090dfc2a7b7b008.tar.gz
openbsd-c64ae263713a52181fce5e72d090dfc2a7b7b008.tar.bz2
openbsd-c64ae263713a52181fce5e72d090dfc2a7b7b008.zip
libc changes for thread safety. Tested on:
alpha (millert@), i386 (marc@), m68k (millert@ and miod@), powerpc (drahn@ and dhartmei@), sparc (millert@ and marc@), sparc64 (marc@), and vax (millert@ and miod@). Thanks to millert@, miod@, and mickey@ for fixes along the way.
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 7057f9b1ad..6fffe3df7c 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.8 2002/09/14 22:03:14 dhartmei Exp $"; 35static char *rcsid = "$OpenBSD: abort.c,v 1.9 2002/11/03 20:36:43 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}