Mercurial > hg > Members > kono > Cerium
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; |