remove bug in the timer queue

This commit is contained in:
Stefan Lankes 2011-08-28 23:56:29 -07:00
parent 45d1acddca
commit 426c06193b

View file

@ -1017,8 +1017,9 @@ int set_timer(uint64_t deadline)
if (runqueues[core_id].timers.last)
runqueues[core_id].timers.last->next = curr_task;
runqueues[core_id].timers.last = curr_task;
if (!runqueues[core_id].timers.first)
runqueues[core_id].timers.first = curr_task;
// obsolete lines...
//if (!runqueues[core_id].timers.first)
// runqueues[core_id].timers.first = curr_task;
} else {
curr_task->prev = tmp->prev;
curr_task->next = tmp;
@ -1198,7 +1199,9 @@ void scheduler(void)
// remove timer from queue
runqueues[core_id].timers.first = runqueues[core_id].timers.first->next;
if (!runqueues[core_id].timers.first)
if (runqueues[core_id].timers.first)
runqueues[core_id].timers.first->prev = NULL;
else
runqueues[core_id].timers.last = NULL;
task->flags &= ~TASK_TIMER;