comparison TaskManager/kernel/schedule/Scheduler.cc @ 42:aa11038dbdc1

*** empty log message ***
author gongo
date Thu, 14 Feb 2008 18:27:37 +0900
parents
children 70a0ac46133e
comparison
equal deleted inserted replaced
41:68fb5bfee6b7 42:aa11038dbdc1
1 #include "Scheduler.h"
2 #include "SchedNop.h"
3 #include "error.h"
4
5 void
6 Scheduler::init(void)
7 {
8 init_impl();
9
10 listBufFlg = 0;
11 readBufFlg = 0;
12 writeBufFlg = 0;
13 }
14
15 void
16 Scheduler::run(void)
17 {
18 SchedTaskBase* taskTmp;
19 task1 = new SchedNop();
20 task2 = new SchedNop();
21 task3 = new SchedNop();
22
23 // main loop
24 do {
25 __debug("----------\n");
26 task3->write();
27 task2->exec();
28 task1->read();
29
30 taskTmp = task3;
31 task3 = task2;
32 task2 = task1;
33 task1 = task1->next(this, taskTmp);
34 } while (task1);
35
36 delete task3;
37 delete task2;
38 }
39
40 TaskListPtr
41 Scheduler::get_curListBuf(void)
42 {
43 listBufFlg ^= 1;
44 return listBuf[listBufFlg];
45 }
46
47
48 void *
49 Scheduler::get_curWriteBuf(void)
50 {
51 writeBufFlg ^= 1;
52 return writeBuf[writeBufFlg];
53 }
54
55
56 void*
57 Scheduler::get_curReadBuf(void)
58 {
59 readBufFlg ^= 1;
60 return readBuf[readBufFlg];
61 }