summaryrefslogtreecommitdiffstats
path: root/src/kernel/scheduler.C
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2010-06-07 14:41:20 -0500
committerPatrick Williams <iawillia@us.ibm.com>2010-06-07 14:41:20 -0500
commit546a015f74fab0c4e359cf97f289ff26d6481844 (patch)
treebd2643a5d512af932090fb09748aea8aa8f61521 /src/kernel/scheduler.C
parentcd86583d084a4227dbf6a7cca2934eaad2b060d1 (diff)
downloadtalos-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.C6
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);
}
OpenPOWER on IntegriCloud