提交 45f3cf78 编写于 作者: B Bernard Xiong

[kernel] sync with pthread_exit issue in master

上级 24fee46e
......@@ -326,17 +326,17 @@ rt_err_t rt_thread_detach(rt_thread_t thread)
/* change stat */
thread->stat = RT_THREAD_CLOSE;
/* detach object */
rt_object_detach((rt_object_t)thread);
if (thread->cleanup != RT_NULL)
if ((rt_object_is_systemobject((rt_object_t)thread) == RT_TRUE) &&
thread->cleanup == RT_NULL)
{
rt_object_detach((rt_object_t)thread);
}
else
{
/* disable interrupt */
lock = rt_hw_interrupt_disable();
/* insert to defunct thread list */
rt_list_insert_after(&rt_thread_defunct, &(thread->tlist));
/* enable interrupt */
rt_hw_interrupt_enable(lock);
}
......@@ -345,7 +345,6 @@ rt_err_t rt_thread_detach(rt_thread_t thread)
}
RTM_EXPORT(rt_thread_detach);
#ifdef RT_USING_HEAP
/**
* This function will create a thread object and allocate thread object memory
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册