# HG changeset patch # User Shinji KONO # Date 1280817169 -32400 # Node ID 6d3c954e510a74c16932e9469815e5efb9cd5cc6 # Parent 8b073ba2384fb7e6ed76694543dbde5546ff23e0 auto_free diff -r 8b073ba2384f -r 6d3c954e510a TaskManager/kernel/ppe/HTask.cc --- a/TaskManager/kernel/ppe/HTask.cc Mon Aug 02 22:16:48 2010 +0900 +++ b/TaskManager/kernel/ppe/HTask.cc Tue Aug 03 15:32:49 2010 +0900 @@ -122,4 +122,5 @@ + /* end */ diff -r 8b073ba2384f -r 6d3c954e510a TaskManager/kernel/ppe/HTask.h --- a/TaskManager/kernel/ppe/HTask.h Mon Aug 02 22:16:48 2010 +0900 +++ b/TaskManager/kernel/ppe/HTask.h Tue Aug 03 15:32:49 2010 +0900 @@ -110,6 +110,9 @@ void no_auto_free() { flag.no_auto_free = 1; } + void auto_free() { + flag.no_auto_free = 0; + } void init(int cmd) { next = prev = NULL; diff -r 8b073ba2384f -r 6d3c954e510a example/many_task/sort.cc --- a/example/many_task/sort.cc Mon Aug 02 22:16:48 2010 +0900 +++ b/example/many_task/sort.cc Tue Aug 03 15:32:49 2010 +0900 @@ -117,6 +117,14 @@ for (int i = 0; i < s->split_num; i++) { s->fsort[i]->spawn(); } + if (sort_count == 1) { + // last loop wait for all task + // we should not need this? + for (int i = 0; i < half_num; i++) { + restart->wait_for(s->bsort[i]); + s->bsort[i]->auto_free(); + } + } restart->spawn(); return 0; }