diff --git a/src/sys/kernel/sched.c b/src/sys/kernel/sched.c index 97499d5..5ba4086 100644 --- a/src/sys/kernel/sched.c +++ b/src/sys/kernel/sched.c @@ -82,6 +82,7 @@ void sched(){ uInt32 memAddr = 0x0; kTask_t *tmpTask = 0x0; + kTask_t *delTask = 0x0; if (!spinTryLock(&schedulerSpinLock)) return; @@ -98,10 +99,11 @@ } else if (_current->state == DEAD) { - _current = tmpTask; + delTask = tmpTask; tmpTask = tmpTask->prev; - sched_deleteTask(_current->id); - sched_addDelTask(_current); + sched_deleteTask(delTask->id); + sched_addDelTask(delTask); + goto schedStart; } } @@ -276,6 +278,9 @@ /*** $Log$ + Revision 1.57 2004/09/11 21:38:00 reddawg + Fixed a few problems + Revision 1.56 2004/09/11 21:31:54 apwillia Fix DEAD problem