Mercurial > hg > Game > Cerium
view TaskManager/kernel/schedule/TaskGroup.cc @ 366:0251d06467de draft
rename include/TaskManager/* and add memory
author | aaa |
---|---|
date | Mon, 27 Jul 2009 15:51:18 +0900 |
parents | a314d8cd2082 |
children | bf2d2625485e |
line wrap: on
line source
#include "TaskGroup.h" void TaskGroup::add(TaskPtr add_task) { TaskQueuePtr q = new TaskQueue(add_task); group = TaskQueue::append(group, q); } void TaskGroup::remove(TaskPtr delete_task) { TaskQueuePtr p = group; TaskQueuePtr p1; if (p == NULL) return; if (p->task == delete_task) { group = group->next; delete p; } else { p1 = p->next; while (p1 && p1->task != delete_task) { p1 = p1->next; p = p->next; } if (p1) { p->next = p1->next; delete p1; } } } /** * 自分が持つ TaskGroup に Task が残っていれば NULL を返す。 * もう全てのタスクが終了していれば、この TaskGroup を作った * (一番最初にタスク内タスク生成を行った)タスクが PPE に返すべきだった * command を返す。 */ unsigned int TaskGroup::status(void) { /** * bool の * true == 1; * false == 0; * って保証されてるんだっけ? */ #if 1 return (group == NULL) * command; #else if (group.empty()) { return command; } else { return 0; } #endif }