Mercurial > hg > Members > kono > Cerium
diff TaskManager/Fifo/FifoTaskManagerImpl.cc @ 640:a909c50081c2
SimpeTask on Cell worked.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 20 Nov 2009 23:12:34 +0900 |
parents | 671fca057ad3 |
children | bffdede05f1e |
line wrap: on
line diff
--- a/TaskManager/Fifo/FifoTaskManagerImpl.cc Thu Nov 19 18:45:24 2009 +0900 +++ b/TaskManager/Fifo/FifoTaskManagerImpl.cc Fri Nov 20 23:12:34 2009 +0900 @@ -10,7 +10,7 @@ FifoTaskManagerImpl::~FifoTaskManagerImpl() { delete mailManager; - delete scheduler; + delete mainScheduler; delete taskListImpl ; delete taskQueueImpl ; @@ -29,11 +29,11 @@ mailManager = new MailManager(); mailManager->init(20); - scheduler = new MainScheduler(); - scheduler->init(this); - scheduler->set_mailManager(mailManager); - scheduler->id = 0; - set_scheduler(scheduler); + mainScheduler = new MainScheduler(); + mainScheduler->init(this); + mainScheduler->set_mailManager(mailManager); + mainScheduler->id = 0; + set_scheduler(mainScheduler); taskListImpl = new TaskListInfo; taskQueueImpl = new TaskQueueInfo; @@ -42,7 +42,7 @@ mainTaskList = taskListImpl->create(); schedTaskManager = new SchedTask(); - schedTaskManager->init(0,0,0,scheduler); + schedTaskManager->init(0,0,0,mainScheduler); } @@ -59,10 +59,10 @@ mailManager->init(20); //scheduler = new MainScheduler(); - scheduler = _sched; - scheduler->init(this); - scheduler->set_mailManager(mailManager); - set_scheduler(scheduler); + mainScheduler = _sched; + mainScheduler->init(this); + mainScheduler->set_mailManager(mailManager); + set_scheduler(mainScheduler); taskListImpl = tm-> taskListImpl ; taskQueueImpl = tm-> taskQueueImpl ; @@ -171,10 +171,16 @@ in_mail_list = MailManager::append_mailQueue(in_mail_list, sentinel); // scheduler は受け取ったメールを元に実行する - scheduler->send_mailList(in_mail_list); - scheduler->run(); + mainScheduler->send_mailList(in_mail_list); + mainScheduler->run(); } - out_mail_list = scheduler->recv_mailList(); + out_mail_list = mainScheduler->recv_mailList(); +#if 0 + if (MailManager::length(out_mail_list )==-1) { + fprintf(stderr, "Error on mail list\n"); + exit(0); + } +#endif return out_mail_list; } @@ -208,6 +214,8 @@ if (data == (memaddr)MY_SPE_STATUS_READY) { __debug_ppe("mail_check(): Task List finish\n"); + } else if (data == (memaddr)MY_SPE_COMMAND_EXIT) { + __debug_ppe("mail_check(): Task List finish COMMAND\n"); } else if (data != (memaddr)MY_SPE_NOP) { __debug_ppe("mail_check(): recv from 0x%x\n", data); // post_func を先に実行しないと、systask_finish が active_queue @@ -224,38 +232,6 @@ } } -#if 0 -void* -FifoTaskManagerImpl::allocate(int size, int alignment) -{ - if (size==0) return 0; -#if defined(__APPLE__) && ! defined(HAS_POSIZ_MEMALIGN) - return malloc(size); -#else - void *buff; - posix_memalign(&buff, alignment, size); - return buff; -#endif -} - -void* -FifoTaskManagerImpl::allocate(int size) -{ - if (size==0) return 0; -#if defined(__APPLE__) && ! defined(HAS_POSIZ_MEMALIGN) - return malloc(size); -#else - void *buff; - posix_memalign(&buff, DEFAULT_ALIGNMENT, size); - return buff; -#endif -} - -Scheduler* -FifoTaskManagerImpl::get_scheduler() { - return scheduler; -} -#endif /** * # # # # # # # #