summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsc <rsc>2006-09-07 16:54:00 +0000
committerrsc <rsc>2006-09-07 16:54:00 +0000
commitb6cac0a53b45a8f35e348dc3235243c066aab747 (patch)
tree858ee0221e210a3a2e1696f1ec4da62c1ba22027
parente7a5b3c5ee2d440892ab7e9bb98ad82efb25219f (diff)
downloadxv6-labs-b6cac0a53b45a8f35e348dc3235243c066aab747.tar.gz
xv6-labs-b6cac0a53b45a8f35e348dc3235243c066aab747.tar.bz2
xv6-labs-b6cac0a53b45a8f35e348dc3235243c066aab747.zip
check preconditions in sched
-rw-r--r--proc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/proc.c b/proc.c
index 37fd768..e48f1ca 100644
--- a/proc.c
+++ b/proc.c
@@ -207,6 +207,11 @@ sched(void)
{
struct proc *p = curproc[cpu()];
+ if(!holding(&proc_table_lock))
+ panic("sched");
+ if(cpus[cpu()].nlock != 1)
+ panic("sched locks");
+
if(setjmp(&p->jmpbuf) == 0)
longjmp(&cpus[cpu()].jmpbuf);
}