From 07569b03c9d1cd80a23479243e9aef030f66272c Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 22 Aug 2008 23:51:22 +0000 Subject: [PATCH] * Added kernel private thread_state_to_text() which just calls state_to_text(). * state_to_text() can now deal with a NULL thread argument. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27163 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/kernel/thread.h | 2 ++ src/system/kernel/thread.cpp | 27 ++++++++++++++++++--------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/headers/private/kernel/thread.h b/headers/private/kernel/thread.h index 5c629b255d..58cc86e164 100644 --- a/headers/private/kernel/thread.h +++ b/headers/private/kernel/thread.h @@ -46,6 +46,8 @@ void thread_exit(void); int32 thread_max_threads(void); int32 thread_used_threads(void); +const char* thread_state_to_text(struct thread* thread, int32 state); + #define thread_get_current_thread arch_thread_get_current_thread struct thread *thread_get_thread_struct(thread_id id); diff --git a/src/system/kernel/thread.cpp b/src/system/kernel/thread.cpp index e1455cf226..51a9019f84 100644 --- a/src/system/kernel/thread.cpp +++ b/src/system/kernel/thread.cpp @@ -1003,16 +1003,18 @@ state_to_text(struct thread *thread, int32 state) case B_THREAD_WAITING: { - switch (thread->wait.type) { - case THREAD_BLOCK_TYPE_SNOOZE: - return "zzz"; + if (thread != NULL) { + switch (thread->wait.type) { + case THREAD_BLOCK_TYPE_SNOOZE: + return "zzz"; - case THREAD_BLOCK_TYPE_SEMAPHORE: - { - sem_id sem = (sem_id)(addr_t)thread->wait.object; - if (sem == thread->msg.read_sem) - return "receive"; - break; + case THREAD_BLOCK_TYPE_SEMAPHORE: + { + sem_id sem = (sem_id)(addr_t)thread->wait.object; + if (sem == thread->msg.read_sem) + return "receive"; + break; + } } } @@ -1982,6 +1984,13 @@ thread_used_threads(void) } +const char* +thread_state_to_text(struct thread* thread, int32 state) +{ + return state_to_text(thread, state); +} + + status_t thread_init(kernel_args *args) {