diff options
| author | 2012-01-17 02:34:18 +0000 | |
|---|---|---|
| committer | 2012-01-17 02:34:18 +0000 | |
| commit | 2aa8ea07027e21f7e3a39dbbc13d2a3af24af722 (patch) | |
| tree | 5169bf71eaf80e7fda22d364a1fdfb1d5decc13b /sys/kern/kern_sig.c | |
| parent | net_addrcmp() dies. found out to be a horrific function by eric (diff) | |
| download | wireguard-openbsd-2aa8ea07027e21f7e3a39dbbc13d2a3af24af722.tar.xz wireguard-openbsd-2aa8ea07027e21f7e3a39dbbc13d2a3af24af722.zip | |
Reimplement mutexes, condvars, and rwlocks to eliminate bugs,
particularly the "consume the signal you just sent" hang, and putting
the wait queues in userspace.
Do cancellation handling in pthread_cond_*wait(), pthread_join(),
and sem_wait().
Add __ prefix to thr{sleep,wakeup,exit,sigdivert}() syscalls; add
'abort" argument to thrsleep to close cancellation race; make
thr{sleep,wakeup} return errno values via *retval to avoid touching
userspace errno.
Diffstat (limited to 'sys/kern/kern_sig.c')
| -rw-r--r-- | sys/kern/kern_sig.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 0775a1edf52..859e1ff75aa 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_sig.c,v 1.131 2011/12/11 19:42:28 guenther Exp $ */ +/* $OpenBSD: kern_sig.c,v 1.132 2012/01/17 02:34:18 guenther Exp $ */ /* $NetBSD: kern_sig.c,v 1.54 1996/04/22 01:38:32 christos Exp $ */ /* @@ -1503,9 +1503,9 @@ sys_nosys(struct proc *p, void *v, register_t *retval) } int -sys_thrsigdivert(struct proc *p, void *v, register_t *retval) +sys___thrsigdivert(struct proc *p, void *v, register_t *retval) { - struct sys_thrsigdivert_args /* { + struct sys___thrsigdivert_args /* { syscallarg(sigset_t) sigmask; syscallarg(siginfo_t *) info; syscallarg(const struct timespec *) timeout; |
