diff options
author | bde <bde@FreeBSD.org> | 2003-10-29 14:40:41 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 2003-10-29 14:40:41 +0000 |
commit | 6bce6afbe7fdd1d2d6f8d6d50002cc47fdfa3b96 (patch) | |
tree | ecbcad096e75390f5b59a0145e94d46e33b45610 /sys/kern/sched_4bsd.c | |
parent | 86956669e331575dc91197028b2d219b1919b54f (diff) | |
download | FreeBSD-src-6bce6afbe7fdd1d2d6f8d6d50002cc47fdfa3b96.zip FreeBSD-src-6bce6afbe7fdd1d2d6f8d6d50002cc47fdfa3b96.tar.gz |
Removed sched_nest variable in sched_switch(). Context switches always
begin with sched_lock held but not recursed, so this variable was
always 0.
Removed fixup of sched_lock.mtx_recurse after context switches in
sched_switch(). Context switches always end with this variable in the
same state that it began in, so there is no need to fix it up. Only
sched_lock.mtx_lock really needs a fixup.
Replaced fixup of sched_lock.mtx_recurse in fork_exit() by an assertion
that sched_lock is owned and not recursed after it is fixed up. This
assertion much match the one in mi_switch(), and if sched_lock were
recursed then a non-null fixup of sched_lock.mtx_recurse would probably
be needed again, unlike in sched_switch(), since fork_exit() doesn't
return to its caller in the normal way.
Diffstat (limited to 'sys/kern/sched_4bsd.c')
-rw-r--r-- | sys/kern/sched_4bsd.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index 6480b49..1a23157 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -567,7 +567,6 @@ void sched_switch(struct thread *td) { struct thread *newtd; - u_long sched_nest; struct kse *ke; struct proc *p; @@ -597,11 +596,9 @@ sched_switch(struct thread *td) */ kse_reassign(ke); } - sched_nest = sched_lock.mtx_recurse; newtd = choosethread(); if (td != newtd) cpu_switch(td, newtd); - sched_lock.mtx_recurse = sched_nest; sched_lock.mtx_lock = (uintptr_t)td; td->td_oncpu = PCPU_GET(cpuid); } |