Mercurial > hg > Members > kono > Cerium
comparison TaskManager/Cell/CellTaskManagerImpl.cc @ 635:8cc609285bbe
SimpleTask worked on Mac OS X
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 18 Nov 2009 18:36:25 +0900 |
parents | 8843edf37c0e |
children | 5530fa36d42e |
comparison
equal
deleted
inserted
replaced
634:0558abba673c | 635:8cc609285bbe |
---|---|
5 #include <string.h> | 5 #include <string.h> |
6 #include "CellTaskManagerImpl.h" | 6 #include "CellTaskManagerImpl.h" |
7 #include "CellTaskListInfo.h" | 7 #include "CellTaskListInfo.h" |
8 #include "HTaskInfo.h" | 8 #include "HTaskInfo.h" |
9 #include "SchedTask.h" | 9 #include "SchedTask.h" |
10 #include "PpeScheduler.h" | 10 #include "MainScheduler.h" |
11 #include "types.h" | 11 #include "types.h" |
12 | 12 |
13 CellTaskManagerImpl::~CellTaskManagerImpl() | 13 CellTaskManagerImpl::~CellTaskManagerImpl() |
14 { | 14 { |
15 delete speThreads; | 15 delete speThreads; |
51 flag_sendTaskList[i] = 1; | 51 flag_sendTaskList[i] = 1; |
52 } | 52 } |
53 // PPE 側の管理をする Manager | 53 // PPE 側の管理をする Manager |
54 ppeManager = new FifoTaskManagerImpl(machineNum); | 54 ppeManager = new FifoTaskManagerImpl(machineNum); |
55 // 大半のTaskQueueInfoは、共有される | 55 // 大半のTaskQueueInfoは、共有される |
56 ppeManager->init(new PpeScheduler, this); | 56 ppeManager->init(new MainScheduler, this); |
57 | 57 |
58 ppeManager->get_scheduler()->set_manager(this); | 58 ppeManager->get_scheduler()->set_manager(this); |
59 schedTaskManager = new SchedTask(); | 59 schedTaskManager = new SchedTask(); |
60 schedTaskManager->init(0,0,0,ppeManager->get_scheduler()); | 60 schedTaskManager->init(0,0,0,ppeManager->get_scheduler()); |
61 } | 61 } |
274 | 274 |
275 | 275 |
276 void* | 276 void* |
277 CellTaskManagerImpl::allocate(int size, int alignment) | 277 CellTaskManagerImpl::allocate(int size, int alignment) |
278 { | 278 { |
279 if (size==0) return 0; | |
279 void *buff; | 280 void *buff; |
280 posix_memalign(&buff, alignment, size); | 281 posix_memalign(&buff, alignment, size); |
281 return buff; | 282 return buff; |
282 } | 283 } |
283 | 284 |
284 void* | 285 void* |
285 CellTaskManagerImpl::allocate(int size) | 286 CellTaskManagerImpl::allocate(int size) |
286 { | 287 { |
288 if (size==0) return 0; | |
287 void *buff; | 289 void *buff; |
288 | 290 |
289 posix_memalign(&buff, DEFAULT_ALIGNMENT, size); | 291 posix_memalign(&buff, DEFAULT_ALIGNMENT, size); |
290 | 292 |
291 // bzero はコストが高いのでやりたくない | 293 // bzero はコストが高いのでやりたくない |