summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_exit.c
diff options
context:
space:
mode:
authorguenther <guenther@openbsd.org>2012-01-17 02:34:18 +0000
committerguenther <guenther@openbsd.org>2012-01-17 02:34:18 +0000
commit2aa8ea07027e21f7e3a39dbbc13d2a3af24af722 (patch)
tree5169bf71eaf80e7fda22d364a1fdfb1d5decc13b /sys/kern/kern_exit.c
parentnet_addrcmp() dies. found out to be a horrific function by eric (diff)
downloadwireguard-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_exit.c')
-rw-r--r--sys/kern/kern_exit.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c
index ecd63cf0fda..50e9e0e3cf9 100644
--- a/sys/kern/kern_exit.c
+++ b/sys/kern/kern_exit.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_exit.c,v 1.105 2011/12/14 07:32:16 guenther Exp $ */
+/* $OpenBSD: kern_exit.c,v 1.106 2012/01/17 02:34:18 guenther Exp $ */
/* $NetBSD: kern_exit.c,v 1.39 1996/04/22 01:38:25 christos Exp $ */
/*
@@ -91,9 +91,9 @@ sys_exit(struct proc *p, void *v, register_t *retval)
}
int
-sys_threxit(struct proc *p, void *v, register_t *retval)
+sys___threxit(struct proc *p, void *v, register_t *retval)
{
- struct sys_threxit_args /* {
+ struct sys___threxit_args /* {
syscallarg(pid_t *) notdead;
} */ *uap = v;