diff options
| author | David Xu <davidxu@FreeBSD.org> | 2008-11-05 03:01:23 +0000 |
|---|---|---|
| committer | David Xu <davidxu@FreeBSD.org> | 2008-11-05 03:01:23 +0000 |
| commit | 7b4a950a7df886f19bea7d2f57ef8f7ef81b7428 (patch) | |
| tree | 50003b0f3882d55b6d31a3135664f3a2abd73c56 /sys/kern/kern_thr.c | |
| parent | cef3930d7c33bf6e86b486fc0a5c0cd9742caf8a (diff) | |
Notes
Diffstat (limited to 'sys/kern/kern_thr.c')
| -rw-r--r-- | sys/kern/kern_thr.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/kern_thr.c b/sys/kern/kern_thr.c index 75d6d0140599..dade1c23c380 100644 --- a/sys/kern/kern_thr.c +++ b/sys/kern/kern_thr.c @@ -286,6 +286,7 @@ thr_exit(struct thread *td, struct thr_exit_args *uap) PROC_LOCK(p); sigqueue_flush(&td->td_sigqueue); + PROC_SLOCK(p); /* * Shutting down last thread in the proc. This will actually @@ -293,10 +294,10 @@ thr_exit(struct thread *td, struct thr_exit_args *uap) */ if (p->p_numthreads != 1) { thread_stopped(p); - PROC_SLOCK(p); thread_exit(); /* NOTREACHED */ } + PROC_SUNLOCK(p); PROC_UNLOCK(p); return (0); } |
