Ver código fonte

[fix] thread control bug about RT_THREAD_CTRL_CLOSE command

chenchaoqun 4 anos atrás
pai
commit
c15a7858c9
1 arquivos alterados com 10 adições e 2 exclusões
  1. 10 2
      src/thread.c

+ 10 - 2
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