summaryrefslogtreecommitdiffstats
path: root/regress/lib/libpthread/sigwait/sigwait.c
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2001-11-11 23:26:35 +0000
committerderaadt <deraadt@openbsd.org>2001-11-11 23:26:35 +0000
commitd485f761243dc265c9c3cced3917c7fbdf09d8a7 (patch)
tree32e1238c4c89d73b1a4a0aa31b77ea218d0caba2 /regress/lib/libpthread/sigwait/sigwait.c
parentLet ltsleep take a const wmesg. (diff)
downloadwireguard-openbsd-d485f761243dc265c9c3cced3917c7fbdf09d8a7.tar.xz
wireguard-openbsd-d485f761243dc265c9c3cced3917c7fbdf09d8a7.zip
signal race fixes
Diffstat (limited to 'regress/lib/libpthread/sigwait/sigwait.c')
-rw-r--r--regress/lib/libpthread/sigwait/sigwait.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/regress/lib/libpthread/sigwait/sigwait.c b/regress/lib/libpthread/sigwait/sigwait.c
index 7d1c7e199f0..70ed4f576cc 100644
--- a/regress/lib/libpthread/sigwait/sigwait.c
+++ b/regress/lib/libpthread/sigwait/sigwait.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sigwait.c,v 1.1.1.1 2001/08/15 14:37:16 fgsch Exp $ */
+/* $OpenBSD: sigwait.c,v 1.2 2001/11/11 23:26:35 deraadt Exp $ */
/*
* Copyright (c) 1998 Daniel M. Eischen <eischen@vigrid.com>
* All rights reserved.
@@ -80,11 +80,17 @@ sigwaiter (void *arg)
static void
sighandler (int signo)
{
- printf (" -> Signal handler caught signal %d (%s) in thread %p\n",
+ int save_errno = errno;
+ char buf[8192];
+
+ snprintf(buf, sizeof buf,
+ " -> Signal handler caught signal %d (%s) in thread %p\n",
signo, strsignal(signo), pthread_self());
+ write(STDOUT_FILENO, buf, strlen(buf));
if ((signo >= 0) && (signo <= NSIG))
sigcounts[signo]++;
+ errno = save_errno;
}
int main (int argc, char *argv[])