diff TaskManager/Cell/CellTaskManagerImpl.cc @ 647:7c9ded1ea750

MailManager rewrite. not yet worked.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 21 Nov 2009 16:18:47 +0900
parents a909c50081c2
children 7405d92733a8
line wrap: on
line diff
--- a/TaskManager/Cell/CellTaskManagerImpl.cc	Sat Nov 21 11:20:29 2009 +0900
+++ b/TaskManager/Cell/CellTaskManagerImpl.cc	Sat Nov 21 16:18:47 2009 +0900
@@ -135,7 +135,6 @@
 CellTaskManagerImpl::run()
 {
     TaskListPtr ppeTaskList = NULL;
-    MailQueuePtr ppeMail = NULL;
 
     // PPE 側で動く TaskList です
     // FifoTaskManagerImpl::run と上手く合うように
@@ -157,9 +156,9 @@
     // どうかを調べる必要がある。
     //
     do {
-	ppeMail = ppeManager->schedule(ppeTaskList);
+	ppeManager->schedule(ppeTaskList);
     cont:
-	ppeTaskList = mail_check(ppeMail);
+	ppeTaskList = mail_check(waitTaskQueue);
     } while (ppeTaskList || spe_running >0);
 }
 
@@ -175,17 +174,17 @@
  */
 
 TaskListPtr
-CellTaskManagerImpl::mail_check(MailQueuePtr mail_list)
+CellTaskManagerImpl::mail_check(HTaskInfo *wait_queue)
 {
     // PPE Scheduler からの mail check
-    ppeManager->mail_check(mail_list, waitTaskQueue);
+    ppeManager->mail_check(waitTaskQueue);
 
     do {
 	memaddr data;
 
 	// SPE Scheduler からの mail check
 	for (int id = 0; id < machineNum; id++) {	    
-	    while (speThreads->check_mail(id, 1, &data)) {				
+	    while (speThreads->has_mail(id, 1, &data)) {				
 		/**
 		 * MY_SPE_STATUS_READY: SPE が持ってた Task 全て終了
 		 * MY_SPE_NOP: 特に意味のないコマンド
@@ -233,7 +232,7 @@
 		    //__debug_ppe("[PPE] recv from [SPE %d] : 0x%x\n", id, data);
 		    HTaskPtr task = (HTaskPtr)data;
 		    task->post_func(schedTaskManager, task->post_arg1, task->post_arg2);
-		    check_task_finish(task);
+		    check_task_finish(task,waitTaskQueue);
 		}
 	    }
 	}