diff TaskManager/kernel/schedule/SchedTask.cc @ 2030:258498680128 draft

indent-region
author Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
date Tue, 25 Nov 2014 05:08:50 +0900
parents f82bb7393c4d
children f7969d7f5605
line wrap: on
line diff
--- a/TaskManager/kernel/schedule/SchedTask.cc	Sun Nov 16 18:00:06 2014 +0900
+++ b/TaskManager/kernel/schedule/SchedTask.cc	Tue Nov 25 05:08:50 2014 +0900
@@ -11,7 +11,7 @@
 #include <stdarg.h>
 #include "gettime.h"
 
-extern TaskObject task_list[MAX_TASK_OBJECT];
+//extern TaskObject task_list[MAX_TASK_OBJECT];
 
 SchedTask::SchedTask()
 {
@@ -44,6 +44,8 @@
     manager = sc->manager;
     connector = sc->connector;
 
+    taskPool = new QueueInfo<TaskObject>();
+
     inListData.bound = din;
     inListData.size = 0;
     inListData.length = 0;
@@ -53,7 +55,7 @@
     outListData.length = 0;
     outListData.element = 0;
 
-    cur_index = _task;
+   cur_index = _task;
     this->tag = tag;
 
     if (list)
@@ -101,8 +103,8 @@
 void
 SchedTask::exec()
 {
-    task_list[atask->command].wait(scheduler,atask->command);
-    TaskObjectRun run = task_list[atask->command].run;
+    taskPool->get(atask->command)->wait(scheduler,atask->command);
+    TaskObjectRun run = taskPool->get(atask->command)->run;
     if (atask->outData_count > 0) {
         setup_outputData(); // we need write buffer before run()
     }
@@ -118,7 +120,7 @@
     }
     (*connector->end_dmawait_profile)(&connector->global_busy_time,&connector->start_time,&connector->stop_time);
     list->task_end_time = gettime();
-    __debug(this->scheduler,"cpuid %ld %s\t0x%p time %lld\n",scheduler->id,(char *)(task_list[atask->command].name),(void*)list, list->task_end_time-list->task_start_time);
+    __debug(this->scheduler,"cpuid %ld %s\t0x%p time %lld\n",scheduler->id,(char *)(taskPool->get(atask->command)->name),(void*)list, list->task_end_time-list->task_start_time);
     connector->free_(readbuf);
     // User 側で作る方法が必要...
     // 書き込む領域がなければ無視