From 65fafe051475ae523e3fd6e8e24ad740215e8bf0 Mon Sep 17 00:00:00 2001 From: mouch6131 <187177037@qq.com> Date: Sat, 14 Jun 2025 16:54:24 +0800 Subject: [PATCH] Fix missing schedule when thread actively suspends itself Signed-off-by: mouch6131 <187177037@qq.com> --- src/thread.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/thread.c b/src/thread.c index ed9dca13b61..fbc240ecaff 100644 --- a/src/thread.c +++ b/src/thread.c @@ -980,6 +980,11 @@ rt_err_t rt_thread_suspend_to_list(rt_thread_t thread, rt_list_t *susp_list, int rt_sched_unlock(slvl); RT_OBJECT_HOOK_CALL(rt_thread_suspend_hook, (thread)); + + /* if suspend by self, we need schedule anyway */ + if (rt_thread_self() == thread) + rt_schedule(); + return RT_EOK; } RTM_EXPORT(rt_thread_suspend_to_list);