Mercurial > hg > Members > kono > Cerium
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 } |