diff example/basic/main.cc @ 256:2c775d229cc6 draft

fix examples
author tkaito@localhost.localdomain
date Wed, 03 Jun 2009 16:14:06 +0900
parents 028ffc9c0375
children da8edd0735f2 cfd20d609ace
line wrap: on
line diff
--- a/example/basic/main.cc	Wed Jun 03 15:46:07 2009 +0900
+++ b/example/basic/main.cc	Wed Jun 03 16:14:06 2009 +0900
@@ -6,15 +6,16 @@
 
 extern void task_init(void);
 
-static int *data;
 static int length = DATA_NUM;
+static int task = 1;
 
-char *help_str = "Usage: ./twice [-length data_length]\n \
-  -length  Number of data (default DATA_NUM (Func.h))";
+const char *usr_help_str = "Usage: ./twice [-length data_length] [-count task_num]\n\
+  -length  Number of data (default DATA_NUM (Func.h))\n\
+  -count   Number of task (default 1)\n";
 
 
 void
-print_data(int *data, int size, char *title)
+print_data(int *data, int size, const char *title)
 {
     printf("%s ---\n", title);
     for (int i = 0; i < size; i++) {
@@ -29,6 +30,7 @@
 void
 twice_result(void *a)
 {
+    int* data = (int*)a;
     print_data(data, length, "after");
     free(data);
 }
@@ -39,10 +41,8 @@
     for (int i = 1; argv[i]; ++i) {
         if (strcmp(argv[i], "-length") == 0) {
             length = atoi(argv[++i]);
-        }
-        if (strcmp(argv[i], "--help") == 0) {
-            printf("%s\n", help_str);
-            return -1;
+        } else if (strcmp(argv[i], "-count") == 0) {
+            task = atoi(argv[++i]);
         }
     }
 
@@ -54,7 +54,7 @@
 {
     HTask *twice;
 
-    data = (int*)manager->malloc(sizeof(int)*length);
+    int *data = (int*)manager->allocate(sizeof(int)*length);
 
     for (int i = 0; i < length; i++) {
 	data[i] = i;
@@ -87,14 +87,14 @@
      */
     twice->add_param(length);
 
-    twice->set_post(twice_result, NULL);
+    twice->set_post(twice_result, (void*)data);
 
     // add Active Queue
     twice->spawn();    
 }
 
 int
-cerium_main(int argc, char *argv[])
+TMmain(int argc, char *argv[])
 {
     if (init(argc, argv) < 0) {
 	return -1;
@@ -104,7 +104,9 @@
     //   ppe/task_init.cc
     task_init();
 
-    twice_init();
+    for (int i = 0; i < task; ++i) {
+	twice_init();
+    }
 
     return 0;
 }