* The undertaker was not locking when enqueuing the thread structure in
the free queue. * "thread" also prints the thread's I/O priority. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28218 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -589,6 +589,7 @@ undertaker(void* /*args*/)
|
|||||||
release_sem_etc(entry.deathSem, 1, B_DO_NOT_RESCHEDULE);
|
release_sem_etc(entry.deathSem, 1, B_DO_NOT_RESCHEDULE);
|
||||||
|
|
||||||
// free the thread structure
|
// free the thread structure
|
||||||
|
locker.Lock();
|
||||||
thread_enqueue(thread, &dead_q);
|
thread_enqueue(thread, &dead_q);
|
||||||
// TODO: Use the slab allocator!
|
// TODO: Use the slab allocator!
|
||||||
}
|
}
|
||||||
@@ -1119,7 +1120,8 @@ _dump_thread_info(struct thread *thread, bool shortInfo)
|
|||||||
kprintf("name: \"%s\"\n", thread->name);
|
kprintf("name: \"%s\"\n", thread->name);
|
||||||
kprintf("all_next: %p\nteam_next: %p\nq_next: %p\n",
|
kprintf("all_next: %p\nteam_next: %p\nq_next: %p\n",
|
||||||
thread->all_next, thread->team_next, thread->queue_next);
|
thread->all_next, thread->team_next, thread->queue_next);
|
||||||
kprintf("priority: %ld (next %ld)\n", thread->priority, thread->next_priority);
|
kprintf("priority: %ld (next %ld, I/O: %ld)\n", thread->priority,
|
||||||
|
thread->next_priority, thread->io_priority);
|
||||||
kprintf("state: %s\n", state_to_text(thread, thread->state));
|
kprintf("state: %s\n", state_to_text(thread, thread->state));
|
||||||
kprintf("next_state: %s\n", state_to_text(thread, thread->next_state));
|
kprintf("next_state: %s\n", state_to_text(thread, thread->next_state));
|
||||||
kprintf("cpu: %p ", thread->cpu);
|
kprintf("cpu: %p ", thread->cpu);
|
||||||
|
|||||||
Reference in New Issue
Block a user