diff options
author | rsc <rsc> | 2006-09-07 16:54:00 +0000 |
---|---|---|
committer | rsc <rsc> | 2006-09-07 16:54:00 +0000 |
commit | b6cac0a53b45a8f35e348dc3235243c066aab747 (patch) | |
tree | 858ee0221e210a3a2e1696f1ec4da62c1ba22027 | |
parent | e7a5b3c5ee2d440892ab7e9bb98ad82efb25219f (diff) | |
download | xv6-labs-b6cac0a53b45a8f35e348dc3235243c066aab747.tar.gz xv6-labs-b6cac0a53b45a8f35e348dc3235243c066aab747.tar.bz2 xv6-labs-b6cac0a53b45a8f35e348dc3235243c066aab747.zip |
check preconditions in sched
-rw-r--r-- | proc.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -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); } |