Mercurial > hg > Game > Cerium
diff TaskManager/kernel/ppe/CpuThreads.cc @ 1482:85a848d7f181 draft
fix CpuThreads
author | Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 01 Aug 2012 21:37:29 +0900 |
parents | a9da5c6bea91 |
children | f402f6444237 |
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/CpuThreads.cc Tue Jul 31 19:12:41 2012 +0900 +++ b/TaskManager/kernel/ppe/CpuThreads.cc Wed Aug 01 21:37:29 2012 +0900 @@ -1,12 +1,17 @@ #include <stdlib.h> #include "types.h" #include "CpuThreads.h" +#ifdef __CERIUM_GPU__ +#include "GpuThreads.h" +#endif +#include "GpuThreads.h" #include "MainScheduler.h" #include "SysFunc.h" #include "SchedNop.h" #include "SpeTaskManagerImpl.h" #include "CellScheduler.h" + SchedExternTask(ShowTime); SchedExternTask(StartProfile); @@ -14,7 +19,7 @@ CpuThreads::CpuThreads(int num, int useRefDma, int start_id) : cpu_num(num), use_refdma(useRefDma), id_offset(start_id) { #ifdef __CERIUM_GPU__ - gpu = new GpuThreads(); + gpu = new GpuThreads(useRefDma); #endif threads = new pthread_t[cpu_num]; args = new cpu_thread_arg_t[cpu_num]; @@ -72,6 +77,12 @@ //CpuThreads::init() CpuThreads::init() { +#ifdef __CERIUM_GPU__ + gpu->set_wait(wait); + gpu->init(); + wait->sem_p(); +#endif + for (int i = 0; i < cpu_num; i++) { args[i].cpuid = i + id_offset; args[i].scheduler = new MainScheduler();