Mercurial > hg > Game > CbCTaskManager
annotate examples/treedependtask/testmanager.cbc @ 10:5d400e07b19d
add automake tools.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 08 Jan 2010 14:48:59 +0900 |
parents | 07fab8c367b2 |
children | f06fb0370caf |
rev | line source |
---|---|
8
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 #include <stdio.h> |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 #include <stdlib.h> |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 #include "CbCTaskManager.h" |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 #include "taskinit.h" |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 #define __DEBUG(f, args...) \ |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 fprintf(stderr, "in %s: "f, __FUNCTION__, ## args) |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 /* it may be moved to TaskManager side. */ |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 __code nojob(void *manager, void *rbuff, void *wbuff) |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 { |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 goto scheduler(manager, ENDTASK, NULL, NULL); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 } |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 extern __code taskA_0(UserManager *, void *, void *); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 extern __code taskA_1(UserManager *, void *, void *); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 extern __code taskA_2(UserManager *, void *, void *); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 #define NUM 16 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 /* |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 * TASKs. |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 */ |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 __code starttask(UserManager *manager, void *rbuff, void *wbuff) |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 { |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 UserTask *tasks[NUM]; |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 __DEBUG("s=%p, rb=%p, wb=%p\n", manager, rbuff, wbuff); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 int i; |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 for (i=0; i<NUM; i++) { |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36 tasks[i] = createTask(TASK_A, NULL); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 taskSetData(tasks[i], (void*)i, i, NULL,0); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 } |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 taskSetWait(tasks[0], tasks[1]); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 for (i=1; 2*i<NUM; i++) { |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 taskSetWait(tasks[i], tasks[2*i]); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 if (2*i+1<NUM) |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 taskSetWait(tasks[i], tasks[2*i+1]); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 } |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 for (i=0; i<NUM; i++) { |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 taskSpawn(manager, tasks[i]); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 } |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 goto scheduler(manager, ENDTASK, NULL, NULL); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 } |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51 __code taskA(UserManager *manager, void *rbuff, void *wbuff) |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 { |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53 __DEBUG("s=%p, rb=%p, wb=%p\n", manager, rbuff, wbuff); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 goto scheduler(manager, taskA_0, NULL, NULL); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 } |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56 __code taskA_0(UserManager *manager, void *rbuff, void *wbuff) |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 { |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 __DEBUG("s=%p, rb=%p, wb=%p\n", manager, rbuff, wbuff); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59 goto scheduler(manager, taskA_1, NULL, NULL); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60 } |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 __code taskA_1(UserManager *manager, void *rbuff, void *wbuff) |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 { |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
63 __DEBUG("s=%p, rb=%p, wb=%p\n", manager, rbuff, wbuff); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
64 goto scheduler(manager, taskA_2, NULL, NULL); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
65 } |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
66 __code taskA_2(UserManager *manager, void *rbuff, void *wbuff) |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
67 { |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 __DEBUG("s=%p, rb=%p, wb=%p\n", manager, rbuff, wbuff); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69 goto scheduler(manager, ENDTASK, NULL, NULL); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70 } |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72 __code taskB(UserManager *manager, void *rbuff, void *wbuff) |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73 { |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74 __DEBUG("s=%p, rb=%p, wb=%p\n", manager, rbuff, wbuff); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
75 goto scheduler(manager, taskA_0, NULL, NULL); |
07fab8c367b2
made src directory and move all source files into it.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76 } |