Mercurial > hg > Game > Cerium
comparison TaskManager/kernel/schedule/SchedTaskArray.cc @ 704:ec6c897448ca draft
Compatibility mode works.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 14 Dec 2009 19:54:00 +0900 |
parents | 0c8ad8d99656 |
children | b2b4a1243961 |
comparison
equal
deleted
inserted
replaced
703:0c8ad8d99656 | 704:ec6c897448ca |
---|---|
38 outListData.bound = 0; | 38 outListData.bound = 0; |
39 outListData.size = 0; | 39 outListData.size = 0; |
40 outListData.length = 0; | 40 outListData.length = 0; |
41 outListData.element = 0; | 41 outListData.element = 0; |
42 | 42 |
43 array = task = (TaskPtr)&sv->list->tasks[sv->cur_index]; | 43 task = (TaskPtr)&sv->list->tasks[sv->cur_index]; |
44 sv->cur_index += (task->size())/sizeof(SimpleTask); | 44 array = 0; |
45 sv->cur_index += (task->size()+sizeof(SimpleTask))/sizeof(SimpleTask); | |
45 | 46 |
46 } | 47 } |
47 | 48 |
48 /** | 49 /** |
49 */ | 50 */ |
127 free(writebuf); | 128 free(writebuf); |
128 free(inListData.bound); | 129 free(inListData.bound); |
129 free(outListData.bound); | 130 free(outListData.bound); |
130 | 131 |
131 // このTaskArrayは終り。終了を知らせる。 | 132 // このTaskArrayは終り。終了を知らせる。 |
132 if (task->next() >= last()) { | 133 if (!array || task->next() >= last()) { |
133 SchedTask *s = (SchedTask *)savedTask; | 134 SchedTask *s = (SchedTask *)savedTask; |
134 scheduler->mail_write((memaddr)s->task->self); | 135 scheduler->mail_write((memaddr)s->task->self); |
135 free(array); | 136 free(array); |
136 } | 137 } |
137 | 138 |