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
 
 /**
  * # # # # # # # #