Mercurial > hg > Members > kono > Cerium
diff TaskManager/kernel/schedule/SchedTask.cc @ 703:61b59376aec5
compatibility
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 14 Dec 2009 18:34:46 +0900 |
parents | 7e937a1cd121 |
children | 6d497c098455 |
line wrap: on
line diff
--- a/TaskManager/kernel/schedule/SchedTask.cc Mon Dec 14 17:12:38 2009 +0900 +++ b/TaskManager/kernel/schedule/SchedTask.cc Mon Dec 14 18:34:46 2009 +0900 @@ -11,6 +11,7 @@ #include <stdarg.h> #ifdef SIMPLE_TASK +#include "SchedTaskArray.h" #define Task SimpleTask #define TaskPtr SimpleTaskPtr #endif @@ -162,7 +163,6 @@ scheduler->mail_write((memaddr)task->self); } - SchedTaskBase* SchedTask::next(Scheduler *scheduler, SchedTaskBase *p) { @@ -173,14 +173,17 @@ TaskPtr nextTask = &list->tasks[cur_index++]; SchedTaskBase *nextSched = createSchedTask(scheduler, nextTask); - // この up cast は汚い... - ((SchedTask*)nextSched)->init(list, nextTask, cur_index, - scheduler); + ((SchedTask*)nextSched)->init(list, nextTask, cur_index, scheduler); +#ifdef SIMPLE_TASK + if (nextTask->command==TaskArray1) { + // compatibility + return new SchedTaskArray(scheduler, nextSched); + } if (nextTask->command==TaskArray) { // Start Task Array return (SchedTaskBase*)(new SchedTaskArrayLoad(scheduler, nextSched)); } - +#endif return nextSched; } else { memaddr nextList = (memaddr)list->next;