Rev 2041 | Rev 2048 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2041 | Rev 2042 | ||
---|---|---|---|
Line 218... | Line 218... | ||
218 | USTACK_ADDRESS, AS_AREA_ATTR_NONE, &anon_backend, NULL); |
218 | USTACK_ADDRESS, AS_AREA_ATTR_NONE, &anon_backend, NULL); |
219 | 219 | ||
220 | /* |
220 | /* |
221 | * Create the main thread. |
221 | * Create the main thread. |
222 | */ |
222 | */ |
223 | t1 = thread_create(uinit, kernel_uarg, task, THREAD_FLAG_USPACE, "uinit"); |
223 | t1 = thread_create(uinit, kernel_uarg, task, THREAD_FLAG_USPACE, "uinit", false); |
224 | ASSERT(t1); |
224 | ASSERT(t1); |
225 | 225 | ||
226 | /* |
226 | /* |
227 | * Create killer thread for the new task. |
227 | * Create killer thread for the new task. |
228 | */ |
228 | */ |
229 | t2 = thread_create(ktaskgc, t1, task, 0, "ktaskgc"); |
229 | t2 = thread_create(ktaskgc, t1, task, 0, "ktaskgc", true); |
230 | ASSERT(t2); |
230 | ASSERT(t2); |
231 | thread_ready(t2); |
231 | thread_ready(t2); |
232 | 232 | ||
233 | thread_ready(t1); |
233 | thread_ready(t1); |
234 | 234 | ||
Line 283... | Line 283... | ||
283 | link_t *cur; |
283 | link_t *cur; |
284 | for (cur = t->th_head.next; cur != &t->th_head; cur = cur->next) { |
284 | for (cur = t->th_head.next; cur != &t->th_head; cur = cur->next) { |
285 | thread_t *thr = list_get_instance(cur, thread_t, th_link); |
285 | thread_t *thr = list_get_instance(cur, thread_t, th_link); |
286 | 286 | ||
287 | spinlock_lock(&thr->lock); |
287 | spinlock_lock(&thr->lock); |
- | 288 | /* Process only counted threads */ |
|
288 | 289 | if (!thr->uncounted) { |
|
289 | if (thr == THREAD) /* Update accounting of current thread */ |
290 | if (thr == THREAD) /* Update accounting of current thread */ |
290 | thread_update_accounting(); |
291 | thread_update_accounting(); |
291 | ret += thr->cycles; |
292 | ret += thr->cycles; |
292 | 293 | } |
|
293 | spinlock_unlock(&thr->lock); |
294 | spinlock_unlock(&thr->lock); |
294 | } |
295 | } |
295 | 296 | ||
296 | return ret; |
297 | return ret; |
297 | } |
298 | } |
Line 326... | Line 327... | ||
326 | spinlock_unlock(&ta->lock); |
327 | spinlock_unlock(&ta->lock); |
327 | 328 | ||
328 | btree_remove(&tasks_btree, ta->taskid, NULL); |
329 | btree_remove(&tasks_btree, ta->taskid, NULL); |
329 | spinlock_unlock(&tasks_lock); |
330 | spinlock_unlock(&tasks_lock); |
330 | 331 | ||
331 | t = thread_create(ktaskclnp, NULL, ta, 0, "ktaskclnp"); |
332 | t = thread_create(ktaskclnp, NULL, ta, 0, "ktaskclnp", true); |
332 | 333 | ||
333 | spinlock_lock(&ta->lock); |
334 | spinlock_lock(&ta->lock); |
334 | ta->accept_new_threads = false; |
335 | ta->accept_new_threads = false; |
335 | ta->refcount--; |
336 | ta->refcount--; |
336 | 337 |