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;