diff TaskManager/kernel/schedule/SchedTaskArray.cc @ 704:6d497c098455

Compatibility mode works.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 14 Dec 2009 19:54:00 +0900
parents 61b59376aec5
children e4d2b823903c
line wrap: on
line diff
--- a/TaskManager/kernel/schedule/SchedTaskArray.cc	Mon Dec 14 18:34:46 2009 +0900
+++ b/TaskManager/kernel/schedule/SchedTaskArray.cc	Mon Dec 14 19:54:00 2009 +0900
@@ -40,8 +40,9 @@
     outListData.length = 0;
     outListData.element = 0;
 
-    array = task = (TaskPtr)&sv->list->tasks[sv->cur_index];
-    sv->cur_index += (task->size())/sizeof(SimpleTask);
+    task = (TaskPtr)&sv->list->tasks[sv->cur_index];
+    array = 0;
+    sv->cur_index += (task->size()+sizeof(SimpleTask))/sizeof(SimpleTask);
 
 }
 
@@ -129,7 +130,7 @@
     free(outListData.bound);
 
     // このTaskArrayは終り。終了を知らせる。
-    if (task->next() >= last()) {
+    if (!array || task->next() >= last()) {
 	SchedTask *s = (SchedTask *)savedTask;
 	scheduler->mail_write((memaddr)s->task->self);
 	free(array);