summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_kthread.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2003-04-17 22:28:28 +0000
committerjhb <jhb@FreeBSD.org>2003-04-17 22:28:28 +0000
commitc94962975bf64ebaaf76de7d9de1dba25825bc1d (patch)
tree5d82fa487d5a1cb9d8e1c9c5ccfaeb73692f6c6c /sys/kern/kern_kthread.c
parent08b81c369f074b87a2acdcfe29cc90467979838c (diff)
downloadFreeBSD-src-c94962975bf64ebaaf76de7d9de1dba25825bc1d.zip
FreeBSD-src-c94962975bf64ebaaf76de7d9de1dba25825bc1d.tar.gz
fork1() already sets PS_INMEM, so don't set it again. This lets us push
sched_lock down slightly so that it isn't needed in the RFSTOPPED case.
Diffstat (limited to 'sys/kern/kern_kthread.c')
-rw-r--r--sys/kern/kern_kthread.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/kern/kern_kthread.c b/sys/kern/kern_kthread.c
index e785d0b..46fa97c 100644
--- a/sys/kern/kern_kthread.c
+++ b/sys/kern/kern_kthread.c
@@ -109,12 +109,11 @@ kthread_create(void (*func)(void *), void *arg,
TD_SET_CAN_RUN(td);
/* Delay putting it on the run queue until now. */
- mtx_lock_spin(&sched_lock);
- p2->p_sflag |= PS_INMEM;
if (!(flags & RFSTOPPED)) {
+ mtx_lock_spin(&sched_lock);
setrunqueue(td);
+ mtx_unlock_spin(&sched_lock);
}
- mtx_unlock_spin(&sched_lock);
return 0;
}
OpenPOWER on IntegriCloud