diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2010-06-07 14:41:20 -0500 |
---|---|---|
committer | Patrick Williams <iawillia@us.ibm.com> | 2010-06-07 14:41:20 -0500 |
commit | 546a015f74fab0c4e359cf97f289ff26d6481844 (patch) | |
tree | bd2643a5d512af932090fb09748aea8aa8f61521 /src/kernel/scheduler.C | |
parent | cd86583d084a4227dbf6a7cca2934eaad2b060d1 (diff) | |
download | talos-hostboot-546a015f74fab0c4e359cf97f289ff26d6481844.tar.gz talos-hostboot-546a015f74fab0c4e359cf97f289ff26d6481844.zip |
Create init process, fix scheduler bugs.
Diffstat (limited to 'src/kernel/scheduler.C')
-rw-r--r-- | src/kernel/scheduler.C | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/kernel/scheduler.C b/src/kernel/scheduler.C index 1df91b9eb..b96dd7c7b 100644 --- a/src/kernel/scheduler.C +++ b/src/kernel/scheduler.C @@ -5,7 +5,9 @@ void Scheduler::addTask(task_t* t) { if (iv_idleTask != t) + { iv_taskList[iv_direction ? 0 : 1].push(t); + } } void Scheduler::returnRunnable() @@ -22,7 +24,7 @@ void Scheduler::setNextRunnable() if (NULL == t) { - iv_taskList[direction ? 0 : 1].pop(); + t = iv_taskList[direction ? 0 : 1].pop(); __sync_bool_compare_and_swap(&iv_direction, direction, !direction); } @@ -30,6 +32,6 @@ void Scheduler::setNextRunnable() { t = iv_idleTask; } - + TaskManager::setCurrentTask(t); } |