Mercurial > hg > Game > Cerium
diff TaskManager/kernel/schedule/SchedNop2Ready.cc @ 184:a19d3ed4ce5b draft
fix
author | gongo@gendarme.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Tue, 06 Jan 2009 15:39:48 +0900 |
parents | 028ffc9c0375 |
children | e9b5dcdae38d |
line wrap: on
line diff
--- a/TaskManager/kernel/schedule/SchedNop2Ready.cc Tue Dec 23 16:27:07 2008 +0900 +++ b/TaskManager/kernel/schedule/SchedNop2Ready.cc Tue Jan 06 15:39:48 2009 +0900 @@ -20,20 +20,18 @@ SchedTaskBase* SchedNop2Ready::next(Scheduler *m, SchedTaskBase *p) { + SchedTaskBase *nextSched; + __debug("[SchedNop2Ready:%s]\n", __FUNCTION__); delete p; - // 追加されたタスクがあれば - if (scheduler->renewTop_taskList) { - TaskListPtr list = scheduler->renewTop_taskList; - scheduler->renewTop_taskList = scheduler->renewTop_taskList->next; - scheduler->renewCur_taskList = NULL; - - list->next = NULL; - SchedTaskList *schd = new SchedTaskList((unsigned int)list, scheduler); - schd->flag_renewTaskList = 1; - return schd; + nextSched = scheduler->get_nextRenewTaskList(NULL, 0); + + // RenewTask がある + if (nextSched) { + printf("RenewTaskList start [SchedNop2Ready]\n"); + return nextSched; } else { scheduler->mail_write(MY_SPE_STATUS_READY); return new SchedMail(scheduler);