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 }