summaryrefslogtreecommitdiff
path: root/sys/kern/kern_exit.c
diff options
context:
space:
mode:
authorJulian Elischer <julian@FreeBSD.org>2007-10-26 08:00:41 +0000
committerJulian Elischer <julian@FreeBSD.org>2007-10-26 08:00:41 +0000
commit7ab24ea3b9c35b2ff5e1e575111699e501ef203a (patch)
treee047e33390a9aae820357c54ff8602bc8faad475 /sys/kern/kern_exit.c
parentc47b138a96ddc99079eedf58c9d91465e64fceae (diff)
Notes
Diffstat (limited to 'sys/kern/kern_exit.c')
-rw-r--r--sys/kern/kern_exit.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c
index 94b949b33ccf..af038a23ee92 100644
--- a/sys/kern/kern_exit.c
+++ b/sys/kern/kern_exit.c
@@ -136,8 +136,7 @@ exit1(struct thread *td, int rv)
* MUST abort all other threads before proceeding past here.
*/
PROC_LOCK(p);
- if (p->p_flag & P_HADTHREADS) {
-retry:
+ while (p->p_flag & P_HADTHREADS) {
/*
* First check if some other thread got here before us..
* if so, act apropriatly, (exit or suspend);
@@ -161,8 +160,8 @@ retry:
* re-check all suspension request, the thread should
* either be suspended there or exit.
*/
- if (thread_single(SINGLE_EXIT))
- goto retry;
+ if (! thread_single(SINGLE_EXIT))
+ break;
/*
* All other activity in this process is now stopped.