提交 f568fbd8 创建 作者: Silas Boyd-Wickizer's avatar Silas Boyd-Wickizer

Bring sched implementation back.

上级 d9545e8b
...@@ -24,7 +24,28 @@ enum { sched_debug = 0 }; ...@@ -24,7 +24,28 @@ enum { sched_debug = 0 };
void void
sched(void) sched(void)
{ {
panic("sched"); int intena;
#if SPINLOCK_DEBUG
if(!holding(&myproc()->lock))
panic("sched proc->lock");
#endif
if(mycpu()->ncli != 1)
panic("sched locks");
if(myproc()->state == RUNNING)
panic("sched running");
if(readrflags()&FL_IF)
panic("sched interruptible");
intena = mycpu()->intena;
myproc()->curcycles += rdtsc() - myproc()->tsc;
if (myproc()->state == ZOMBIE)
mtrace_kstack_stop(myproc());
else
mtrace_kstack_pause(myproc());
mtrace_call_set(0, mycpu()->id);
swtch(&myproc()->context, mycpu()->scheduler);
mycpu()->intena = intena;
} }
// Mark a process RUNNABLE and add it to the runq // Mark a process RUNNABLE and add it to the runq
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论