Mercurial > hg > Game > Cerium
diff TaskManager/kernel/ppe/CpuThreads.cc @ 1580:806b4658ced6 draft
add multi dimension
author | Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 29 Mar 2013 19:32:58 +0900 |
parents | e8c9a7099bcc |
children | 8ee897303cd0 |
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/CpuThreads.cc Mon Mar 25 23:27:04 2013 +0900 +++ b/TaskManager/kernel/ppe/CpuThreads.cc Fri Mar 29 19:32:58 2013 +0900 @@ -101,6 +101,20 @@ gpu->set_NDRange(ndr); } +void +CpuThreads::spawn_task(int cpu_num, TaskListPtr p) { + if (p->dim>0) { + int dim_count = (x+1)*(y+1)*(z+1); + if (cpu_num > dim_count) + p->tasks[0].self->dim_count = cpu_num; + for (int i = 0; i < cpu_num; i++) { + send_mail(i+1,1,(memaddr)&p); + } + } else { + send_mail(cpu_num,1,(memaddr)&p); + } +} + /** * このCPU からのメールを受信する。 *