浏览代码

[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.
Chester guo 3 年之前
父节点
当前提交
01b3a34cc6
共有 1 个文件被更改,包括 13 次插入0 次删除
  1. 13 0
      src/thread.c

+ 13 - 0
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;