comparison TaskManager/kernel/schedule/TaskGroup.cc @ 109:5c194c71eca8

Cerium cvs version
author gongo@gendarme.local
date Wed, 12 Nov 2008 17:39:33 +0900
parents
children d734af296d38
comparison
equal deleted inserted replaced
108:6f3b3dd3c095 109:5c194c71eca8
1 #include "TaskGroup.h"
2
3 void
4 TaskGroup::add(TaskPtr add_task) {
5 TaskQueuePtr q = new TaskQueue(add_task);
6 group = TaskQueue::append(group, q);
7 }
8
9 void
10 TaskGroup::remove(TaskPtr delete_task) {
11 TaskQueuePtr p = group;
12 TaskQueuePtr p1;
13
14 if (p == NULL) return;
15
16 if (p->task == delete_task) {
17 group = group->next;
18 delete p;
19 } else {
20 p1 = p->next;
21 while (p1 && p1->task != delete_task) {
22 p1 = p1->next;
23 p = p->next;
24 }
25 if (p1) {
26 p->next = p1->next;
27 delete p1;
28 }
29 }
30 }
31
32
33 unsigned int
34 TaskGroup::status(void) {
35 /**
36 * bool の
37 * true == 1;
38 * false == 0;
39 * って保証されてるんだっけ?
40 */
41 #if 1
42 return (group == NULL) * command;
43 #else
44 if (group.empty()) {
45 return command;
46 } else {
47 return 0;
48 }
49 #endif
50 }