浏览代码

[smart] fixup: lwp_free() (#8126)

Signed-off-by: shell <wangxiaoyao@rt-thread.com>
Shell 1 年之前
父节点
当前提交
8e57b5fdd4
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      components/lwp/lwp_pid.c

+ 2 - 1
components/lwp/lwp_pid.c

@@ -425,6 +425,7 @@ void lwp_free(struct rt_lwp* lwp)
 #ifdef ARCH_MM_MMU
     lwp_unmap_user_space(lwp);
 #endif
+    timer_list_free(&lwp->timer);
 
     level = rt_hw_interrupt_disable();
     /* for children */
@@ -506,7 +507,6 @@ void lwp_free(struct rt_lwp* lwp)
         }
     }
 
-    timer_list_free(&lwp->timer);
     lwp_pid_put(lwp_to_pid(lwp));
     rt_hw_interrupt_enable(level);
     rt_free(lwp);
@@ -706,6 +706,7 @@ pid_t waitpid(pid_t pid, int *status, int options)
         }
         (*lwp_node) = lwp->sibling;
         lwp->parent = RT_NULL;
+        lwp_pid_put(pid);
     }
 
 quit: