Changes in kernel/generic/src/proc/task.c [5d0500c:2f2beb4] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/proc/task.c
r5d0500c r2f2beb4 90 90 TASK = NULL; 91 91 avltree_create(&tasks_tree); 92 task_slab = slab_cache_create("task_ slab", sizeof(task_t), 0,92 task_slab = slab_cache_create("task_t", sizeof(task_t), 0, 93 93 tsk_constructor, NULL, 0); 94 94 } … … 125 125 { 126 126 size_t tasks_left; 127 128 if (ipc_phone_0) { 129 task_t *task_0 = ipc_phone_0->task; 130 ipc_phone_0 = NULL; 131 /* 132 * The first task is held by kinit(), we need to release it or 133 * it will never finish cleanup. 134 */ 135 task_release(task_0); 136 } 127 137 128 138 /* Repeat until there are any tasks except TASK */ … … 156 166 157 167 list_initialize(&task->threads); 158 list_initialize(&task->sync_boxes);159 168 160 169 ipc_answerbox_init(&task->answerbox, task); … … 162 171 size_t i; 163 172 for (i = 0; i < IPC_MAX_PHONES; i++) 164 ipc_phone_init(&task->phones[i]); 173 ipc_phone_init(&task->phones[i], task); 174 175 spinlock_initialize(&task->active_calls_lock, "active_calls_lock"); 176 list_initialize(&task->active_calls); 165 177 166 178 #ifdef CONFIG_UDEBUG … … 194 206 task->ucycles = 0; 195 207 task->kcycles = 0; 196 208 197 209 task->ipc_info.call_sent = 0; 198 210 task->ipc_info.call_received = 0; … … 204 216 event_task_init(task); 205 217 218 task->answerbox.active = true; 219 206 220 #ifdef CONFIG_UDEBUG 207 221 /* Init debugging stuff */ … … 209 223 210 224 /* Init kbox stuff */ 225 task->kb.box.active = true; 211 226 task->kb.finished = false; 212 227 #endif … … 214 229 if ((ipc_phone_0) && 215 230 (container_check(ipc_phone_0->task->container, task->container))) 216 ipc_phone_connect(&task->phones[0], ipc_phone_0);231 (void) ipc_phone_connect(&task->phones[0], ipc_phone_0); 217 232 218 233 btree_create(&task->futexes);
Note:
See TracChangeset
for help on using the changeset viewer.