Mercurial > hg > Members > kono > Cerium
diff TaskManager/kernel/schedule/SchedTask.cc @ 708:56487849ea2d
cleean up SchedTasks.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 15 Dec 2009 10:49:30 +0900 |
parents | e4d2b823903c |
children | f725c6455d19 |
line wrap: on
line diff
--- a/TaskManager/kernel/schedule/SchedTask.cc Mon Dec 14 20:25:03 2009 +0900 +++ b/TaskManager/kernel/schedule/SchedTask.cc Tue Dec 15 10:49:30 2009 +0900 @@ -18,16 +18,6 @@ extern TaskObject task_list[MAX_TASK_OBJECT]; -/** - Task Object を作る - */ - - -SchedTask * -createSchedTask(Scheduler *scheduler, TaskPtr task) -{ - return new SchedTask(); -} #if 0 /** @@ -70,9 +60,7 @@ void -SchedTask::init(TaskListPtr _list, TaskPtr _task, int index, - // ListDataPtr rbuf, ListDataPtr wbuf, - Scheduler* sc) +SchedTask::init(TaskListPtr _list, TaskPtr _task, int index, Scheduler* sc) { list = _list; task = _task; @@ -169,8 +157,8 @@ // Task List が残っているので、次を準備 TaskPtr nextTask = &list->tasks[cur_index++]; - SchedTaskBase *nextSched = createSchedTask(scheduler, nextTask); - ((SchedTask*)nextSched)->init(list, nextTask, cur_index, scheduler); + SchedTask *nextSched = new SchedTask(); + nextSched->init(list, nextTask, cur_index, scheduler); #ifdef SIMPLE_TASK if (nextTask->command==TaskArray1) { // compatibility @@ -178,7 +166,7 @@ } if (nextTask->command==TaskArray) { // Start Task Array - return (SchedTaskBase*)(new SchedTaskArrayLoad(scheduler, nextSched)); + return new SchedTaskArrayLoad(scheduler, nextSched); } #endif return nextSched; @@ -189,7 +177,7 @@ return new SchedNop2Ready(scheduler); } else { // 新しいリストに取り掛かる - return createSchedTaskList(nextList, scheduler, 0); + return new SchedTaskList(nextList, scheduler); } } } @@ -201,6 +189,10 @@ return scheduler->id; } +void SchedTask::free_(void *p) { + scheduler->free_(p); +} + #ifndef SIMPLE_TASK /** * task->add_inData で与えられた順番に対応する index (0〜n-1) で、