我最近在仿写rt-thread内核,在这个过程中对于它线程的处理有些疑惑
代码如下
#include
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include
sta
tic rt_uint8_t rt_thread_task1[IDLE_THREAD_STACK_SIZE];
void task_entry(void *parameter)
{
while(1)
{
LOG_D("Hello task1");
rt_thread_mdelay(1000);
}
}
int main(void)
{
int count = 1;
static struct rt_thread task1;
rt_thread_init(&task1,
"task1",
task_entry,
RT_NULL,
&rt_thread_task1[0],
sizeof(rt_thread_task1),
16,
32);
rt_thread_startup(&task1);
{
LOG_D("Hello RT-Thread!");
rt_thread_mdelay(1000);
}
return RT_EOK;
}
总所周知,main本身就是rt-thread创建的线程,我在这个线程中创建了一个新的线程并且启动,main函数中的内容就结束了,后续我在shell中通过list_thread指令发现没有main函数,rt-thread是如何在线程运行结束后识别到的呢?请各位大佬指教