diff options
| author | chenchaoqun <[email protected]> | 2020-08-14 15:52:35 +0800 |
|---|---|---|
| committer | chenchaoqun <[email protected]> | 2020-09-02 15:04:42 +0800 |
| commit | c15a7858c9a7bc1f978faa5f0ea3f618fbd3bc03 (patch) | |
| tree | dbefb280019eca61a1d970a71879edffa04ed9d9 | |
| parent | 82ac7d1eeaeda83d874d14f59140e7a6d368270b (diff) | |
[fix] thread control bug about RT_THREAD_CTRL_CLOSE command
| -rw-r--r-- | src/thread.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/thread.c b/src/thread.c index 715596b132..9f80482b20 100644 --- a/src/thread.c +++ b/src/thread.c @@ -679,9 +679,17 @@ rt_err_t rt_thread_control(rt_thread_t thread, int cmd, void *arg) case RT_THREAD_CTRL_STARTUP: return rt_thread_startup(thread); -#ifdef RT_USING_HEAP case RT_THREAD_CTRL_CLOSE: - return rt_thread_delete(thread); + + if (rt_object_is_systemobject((rt_object_t)thread) == RT_TRUE) + { + return rt_thread_detach(thread); + } +#ifdef RT_USING_HEAP + else + { + return rt_thread_delete(thread); + } #endif #ifdef RT_USING_SMP |
