Mercurial > hg > Members > kono > Cerium
diff TaskManager/kernel/ppe/TaskManagerImpl.cc @ 809:76a39ad68846
fix
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 22 May 2010 23:23:29 +0900 |
parents | 3763d29f41a3 |
children | c7905ead974f |
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/TaskManagerImpl.cc Sat May 22 22:32:41 2010 +0900 +++ b/TaskManager/kernel/ppe/TaskManagerImpl.cc Sat May 22 23:23:29 2010 +0900 @@ -180,14 +180,19 @@ void TaskManagerImpl::set_taskList(HTaskPtr htask, TaskListInfoPtr taskList) { - TaskListPtr list = taskList->getLast(); + TaskListPtr list ; + if ( taskList->empty() ) { + list = taskList->create(); + taskList->addLast(list); + } else + list = taskList->getLast(); SimpleTaskPtr task = &list->tasks[list->length++]; if (htask->command==TaskArray1) { // compatibility int next = ((htask->r_size)/sizeof(SimpleTask))+1; if (list->length+next>=TASK_MAX_SIZE) { list->length--; - TaskListPtr newList = taskListImpl->create(); + TaskListPtr newList = taskList->create(); taskList->addLast(newList); list = newList; task = &list->tasks[list->length++]; @@ -205,7 +210,7 @@ *task = *(SimpleTask*)htask; } if (list->length >= TASK_MAX_SIZE) { - TaskListPtr newList = taskListImpl->create(); + TaskListPtr newList = taskList->create(); taskList->addLast(newList); list = newList; }