summaryrefslogtreecommitdiffstats
path: root/src/kernel/scheduler.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/scheduler.C')
-rw-r--r--src/kernel/scheduler.C13
1 files changed, 2 insertions, 11 deletions
diff --git a/src/kernel/scheduler.C b/src/kernel/scheduler.C
index b96dd7c7b..c7c26448c 100644
--- a/src/kernel/scheduler.C
+++ b/src/kernel/scheduler.C
@@ -6,7 +6,7 @@ void Scheduler::addTask(task_t* t)
{
if (iv_idleTask != t)
{
- iv_taskList[iv_direction ? 0 : 1].push(t);
+ iv_taskList.insert(t);
}
}
@@ -17,16 +17,7 @@ void Scheduler::returnRunnable()
void Scheduler::setNextRunnable()
{
- task_t* t = NULL;
-
- bool direction = iv_direction;
- t = iv_taskList[direction ? 1 : 0].pop();
-
- if (NULL == t)
- {
- t = iv_taskList[direction ? 0 : 1].pop();
- __sync_bool_compare_and_swap(&iv_direction, direction, !direction);
- }
+ task_t* t = iv_taskList.remove();
if (NULL == t)
{
OpenPOWER on IntegriCloud