diff options
| author | Julian Elischer <julian@FreeBSD.org> | 2007-10-26 08:00:41 +0000 |
|---|---|---|
| committer | Julian Elischer <julian@FreeBSD.org> | 2007-10-26 08:00:41 +0000 |
| commit | 7ab24ea3b9c35b2ff5e1e575111699e501ef203a (patch) | |
| tree | e047e33390a9aae820357c54ff8602bc8faad475 /sys/kern/kern_exit.c | |
| parent | c47b138a96ddc99079eedf58c9d91465e64fceae (diff) | |
Notes
Diffstat (limited to 'sys/kern/kern_exit.c')
| -rw-r--r-- | sys/kern/kern_exit.c | 7 |
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. |
