Mercurial > hg > Game > Cerium
comparison TaskManager/kernel/ppe/HTask.cc @ 546:d6ba5ede4fe7 draft
....
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 16 Oct 2009 17:57:17 +0900 (2009-10-16) |
parents | 3bc98f6d31ff |
children | e5431e658038 |
comparison
equal
deleted
inserted
replaced
545:085c9284125a | 546:d6ba5ede4fe7 |
---|---|
1 #include "HTask.h" | 1 #include "HTask.h" |
2 #include "ListData.h" | 2 #include "ListData.h" |
3 #include "TaskManagerImpl.h" | 3 #include "TaskManagerImpl.h" |
4 | 4 |
5 | 5 |
6 /*! | |
7 manager->set_task_depend(task1, task2); // task2 は task1 の終了を待つ | |
8 | |
9 ってやるより | |
10 | |
11 task2->set_depend(task1); | |
12 | |
13 ってやったほうがわかりやすいよねー的な話し合いで | |
14 下のようなAPIを作りました | |
15 */ | |
16 | |
17 void | 6 void |
18 HTask::spawn(void) | 7 HTask::spawn() |
19 { | 8 { |
20 mimpl->spawn_task(this); | 9 mimpl->spawn_task(this); |
21 } | 10 } |
22 | 11 |
23 /*! | 12 /*! |
30 */ | 19 */ |
31 | 20 |
32 void | 21 void |
33 HTask::wait_for(HTaskPtr master) | 22 HTask::wait_for(HTaskPtr master) |
34 { | 23 { |
35 mimpl->set_task_depend(master, this); | 24 TaskQueuePtr m, s; |
25 | |
26 m = wait_i->create(master); | |
27 s = wait_i->create(this); | |
28 | |
29 master->wait_me->addLast(s); | |
30 this->wait_i->addLast(m); | |
31 s->waiter = m; | |
32 | |
36 } | 33 } |
37 | 34 |
38 void | |
39 HTask::set_cpu(CPU_TYPE type) | |
40 { | |
41 { | |
42 mimpl->set_task_cpu(this, type); | |
43 } | |
44 | |
45 void | |
46 set_post(PostFunction func,void *read, void *write) | |
47 this->post_func = func; | |
48 this->post_arg1 = read; | |
49 this->post_arg2 = write; | |
50 } |