From 664324745e2257289f7a61e43892ce6e8b8ed9b7 Mon Sep 17 00:00:00 2001 From: rtm Date: Wed, 12 Jul 2006 09:10:25 +0000 Subject: cvs add spinlock.h fix race in schedule() --- proc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'proc.c') diff --git a/proc.c b/proc.c index 07a88d8..4c2586d 100644 --- a/proc.c +++ b/proc.c @@ -148,7 +148,6 @@ scheduler(void) if(i < NPROC){ np->state = RUNNING; - release(&proc_table_lock); break; } @@ -159,6 +158,8 @@ scheduler(void) cpus[cpu()].lastproc = np; curproc[cpu()] = np; + release(&proc_table_lock); + // h/w sets busy bit in TSS descriptor sometimes, and faults // if it's set in LTR. so clear tss descriptor busy bit. np->gdt[SEG_TSS].sd_type = STS_T32A; -- cgit v1.2.3