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) で、