42
|
1 #include <stdio.h>
|
|
2 #include "SchedNop2Ready.h"
|
109
|
3 #include "SchedTaskList.h"
|
42
|
4 #include "SchedMail.h"
|
|
5 #include "error.h"
|
|
6
|
109
|
7 SchedNop2Ready::SchedNop2Ready(Scheduler *cn)
|
42
|
8 {
|
109
|
9 scheduler = cn;
|
42
|
10 }
|
|
11
|
|
12 void
|
|
13 SchedNop2Ready::exec(void)
|
|
14 {
|
|
15 __debug("[SchedNop2Ready:%s]\n", __FUNCTION__);
|
|
16
|
109
|
17 //scheduler->mail_write(MY_SPE_STATUS_READY);
|
42
|
18 }
|
|
19
|
|
20 SchedTaskBase*
|
|
21 SchedNop2Ready::next(Scheduler *m, SchedTaskBase *p)
|
|
22 {
|
|
23 __debug("[SchedNop2Ready:%s]\n", __FUNCTION__);
|
|
24
|
|
25 delete p;
|
|
26
|
109
|
27 // 追加されたタスクがあれば
|
|
28 if (scheduler->renewTop_taskList) {
|
|
29 TaskListPtr list = scheduler->renewTop_taskList;
|
|
30 scheduler->renewTop_taskList = scheduler->renewTop_taskList->next;
|
|
31 scheduler->renewCur_taskList = NULL;
|
|
32
|
|
33 list->next = NULL;
|
|
34 SchedTaskList *schd = new SchedTaskList((unsigned int)list, scheduler);
|
|
35 schd->flag_renewTaskList = 1;
|
|
36 return schd;
|
|
37 } else {
|
|
38 scheduler->mail_write(MY_SPE_STATUS_READY);
|
|
39 return new SchedMail(scheduler);
|
|
40 }
|
42
|
41 }
|