summaryrefslogtreecommitdiff
path: root/src/thread.c
diff options
context:
space:
mode:
authorchenyingchun0312 <[email protected]>2020-09-22 17:10:48 +0800
committerchenyingchun0312 <[email protected]>2020-09-22 17:10:48 +0800
commit797ce29ae0ed103d9684360dd931e58820ad7511 (patch)
tree619159c581c6cec8afdda8088bc987078dcca22f /src/thread.c
parent02a609e33fbf811f043cd0c628b7d1266a4d41c2 (diff)
parent8302a7224302c0624b9918855a25e12f3a3ede59 (diff)
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'src/thread.c')
-rw-r--r--src/thread.c12
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