From 01b3a34cc6828a87d1f365502a78dca5eadce00c Mon Sep 17 00:00:00 2001 From: Chester guo Date: Thu, 17 Feb 2022 00:44:37 +0800 Subject: [PATCH] [Fix bug] fix thread init bug (#4891) When we create thread A by rt_thread_init but do not init the thread object,and then create thread B in the thread A,it maybe crash. --- src/thread.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) mode change 100644 => 100755 src/thread.c diff --git a/src/thread.c b/src/thread.c old mode 100644 new mode 100755 index 30208f1dd1..79f4eb5f07 --- a/src/thread.c +++ b/src/thread.c @@ -191,6 +191,12 @@ static rt_err_t _thread_init(struct rt_thread *thread, thread->current_priority = priority; thread->number_mask = 0; + +#ifdef RT_USING_EVENT + thread->event_set = 0; + thread->event_info = 0; +#endif + #if RT_THREAD_PRIORITY_MAX > 32 thread->number = 0; thread->high_mask = 0; @@ -247,6 +253,13 @@ static rt_err_t _thread_init(struct rt_thread *thread, thread->duration_tick = 0; #endif + +#ifdef RT_USING_MODULE + thread->module_id = 0; +#endif + + thread->user_data = 0; + RT_OBJECT_HOOK_CALL(rt_thread_inited_hook, (thread)); return RT_EOK;