comparison TaskManager/Fifo/FifoTaskManagerImpl.cc @ 499:eacbcdb23986

still fixing...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 11 Oct 2009 15:42:00 +0900
parents cb5ecfc5aaa3
children 1d4a8a86f26b
comparison
equal deleted inserted replaced
498:cb5ecfc5aaa3 499:eacbcdb23986
96 96
97 // list_top->clear() とかの方がいいかもしれん。 97 // list_top->clear() とかの方がいいかもしれん。
98 list_top = taskListImpl->clear_taskList(list_top); 98 list_top = taskListImpl->clear_taskList(list_top);
99 list = list_top; 99 list = list_top;
100 100
101 // printf("active task queue length = %d\n",activeTaskQueue->length());
101 while (HTaskPtr htask = activeTaskQueue->poll()) { 102 while (HTaskPtr htask = activeTaskQueue->poll()) {
102 task = &list->tasks[list->length++]; 103 task = &list->tasks[list->length++];
103 #if 0 104 #if 0
104 task->command = htask->command; 105 task->command = htask->command;
105 task->inData = htask->inData; 106 task->inData = htask->inData;
106 task->outData = htask->outData; 107 task->outData = htask->outData;
107 task->self = (unsigned int)htask; 108 task->self = (unsigned int)htask;
108 // param は? 109 // param は?
109 #else 110 #else
111 // inData, outData を内蔵にしたので実は、結構でかくない?
112 // 268 byte 程度だが... 不要な分(設定してない inData, outData, param
113 // とかもコピーしてるね。rbuf/wbuf の意味を変えてしまったわけか。
110 memcpy(task, (Task*)htask, sizeof(Task)); 114 memcpy(task, (Task*)htask, sizeof(Task));
111 #endif 115 #endif
112 116
113 117
114 if (list->length >= TASK_MAX_SIZE) { 118 if (list->length >= TASK_MAX_SIZE) {
115 TaskListPtr newList = taskListImpl->create(); 119 TaskListPtr newList = taskListImpl->create();
116 list_top = TaskListInfo::append(list_top, newList); 120 list_top = TaskListInfo::append(list_top, newList);
117 list = newList; 121 list = newList;
118 } 122 }
119 123
120 activeTaskQueue->free_(htask); 124 // activeTaskQueue->free_(htask); ここで free しないで、
125 // mail を待つ
121 } 126 }
122 127
123 mainTaskList = list_top; 128 mainTaskList = list_top;
124 129
125 return list_top; 130 return list_top;