kern
diff src/sched.c @ 52:fa65b4f45366
picking this up again, let's fix it
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sun, 07 Aug 2011 06:42:00 +0300 |
parents | b1e8c8251884 |
children | 23abbeea4d5f |
line diff
1.1 --- a/src/sched.c Mon Aug 01 06:45:29 2011 +0300 1.2 +++ b/src/sched.c Sun Aug 07 06:42:00 2011 +0300 1.3 @@ -21,17 +21,18 @@ 1.4 1.5 void schedule(void) 1.6 { 1.7 + disable_intr(); 1.8 + 1.9 if(EMPTY(runq)) { 1.10 /* idle "process". 1.11 * make sure interrupts are enabled before halting 1.12 */ 1.13 enable_intr(); 1.14 halt_cpu(); 1.15 + printf("fuck you!\n"); 1.16 /* this won't return, it'll just wake up in an interrupt later */ 1.17 } 1.18 1.19 - disable_intr(); 1.20 - 1.21 /* if the current process exhausted its timeslice, 1.22 * move it to the back of the queue. 1.23 */ 1.24 @@ -54,11 +55,13 @@ 1.25 { 1.26 int istate; 1.27 struct proc_list *q; 1.28 - struct process *proc = get_process(pid); 1.29 + struct process *proc; 1.30 1.31 istate = get_intr_state(); 1.32 disable_intr(); 1.33 1.34 + proc = get_process(pid); 1.35 + 1.36 q = state == STATE_RUNNING ? &runq : &waitq; 1.37 1.38 ins_back(q, proc);