diff --git a/src/libcore/rt/sched.rs b/src/libcore/rt/sched.rs index 7fd40fb329f4..7099ae865e93 100644 --- a/src/libcore/rt/sched.rs +++ b/src/libcore/rt/sched.rs @@ -112,7 +112,7 @@ pub impl Scheduler { /// to run it later. Always use this instead of pushing to the work queue /// directly. fn enqueue_task(&mut self, task: ~Coroutine) { - self.work_queue.push_front(task); + self.work_queue.push(task); self.event_loop.callback(resume_task_from_queue); fn resume_task_from_queue() { @@ -129,7 +129,7 @@ pub impl Scheduler { rtdebug!("looking in work queue for task to schedule"); let mut this = self; - match this.work_queue.pop_front() { + match this.work_queue.pop() { Some(task) => { rtdebug!("resuming task from work queue"); this.resume_task_immediately(task); diff --git a/src/libcore/rt/work_queue.rs b/src/libcore/rt/work_queue.rs index f82b5847ef2b..7011b4ebc104 100644 --- a/src/libcore/rt/work_queue.rs +++ b/src/libcore/rt/work_queue.rs @@ -23,25 +23,21 @@ pub impl WorkQueue { } } - fn push_back(&mut self, value: T) { - self.queue.push(value) + fn push(&mut self, value: T) { + self.queue.unshift(value) } - fn pop_back(&mut self) -> Option { + fn pop(&mut self) -> Option { if !self.queue.is_empty() { - Some(self.queue.pop()) + Some(self.queue.shift()) } else { None } } - fn push_front(&mut self, value: T) { - self.queue.unshift(value) - } - - fn pop_front(&mut self) -> Option { + fn steal(&mut self) -> Option { if !self.queue.is_empty() { - Some(self.queue.shift()) + Some(self.queue.pop()) } else { None }