Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
idle空闲线程
空闲线程中的线程清理函数cleanup的作用是什么?
发布于 2024-10-10 15:47:20 浏览:164
订阅该版
研究空闲线程的时候,看到 `rt_defunct_execute(void)` 函数中有一个 `cleanup` 函数,想看看这个函数进行了什么操作,但是没有在源码中找到 `cleanup` 函数的函数体。 ```c /* idle.c */ static void rt_defunct_execute(void) { while (1) { rt_thread_t thread; rt_bool_t object_is_systemobject; void (*cleanup)(struct rt_thread *tid); ...... cleanup = thread->cleanup; object_is_systemobject = rt_object_is_systemobject((rt_object_t)thread); if (object_is_systemobject == RT_TRUE) { rt_object_detach((rt_object_t)thread); } if (cleanup != RT_NULL) { cleanup(thread); } if (object_is_systemobject == RT_FALSE) { RT_KERNEL_FREE(thread->stack_addr); rt_object_delete((rt_object_t)thread); } } } ``` 只在 `rt_thread` 结构体中看到定义了函数指针 `cleanup` ```c /* rtdef.h */ struct rt_thread { ...... void (*cleanup)(struct rt_thread *tid); /**< cleanup function when thread exit */ ...... }; typedef struct rt_thread *rt_thread_t; ``` 然后在 `_thread_init()` 函数中初始化 `cleanup` 函数为0 ```c /* thread.c */ static rt_err_t _thread_init(......) { ...... /* initialize cleanup function and user data */ thread->cleanup = 0; ...... } ``` 我的想法是 `cleanup` 函数应该是可以由用户定义操作的回调函数,如果用户自定义了线程清理函数,可以在 `_thread_init()` 函数中将函数指针 `thread->cleanup` 指向用户自定义的清理函数。不知道我的理解对不对,请大佬指点指点。
查看更多
2
个回答
默认排序
按发布时间排序
Milo
2024-10-15
这家伙很懒,什么也没写!
你的理解是对的,但是有一点需要注意,这个cleanup不建议在应用层面去控制,而是应该由组件或者框架等中间件去控制,比如lwp,posix等都会用到
a1012112796
2024-10-15
这家伙很懒,什么也没写!
看起来应该是这样的,但它和 `user_data` 类似,并没对应的接口函数去设置这个值。所以也不是很推荐在应用代码中使用。
撰写答案
登录
注册新账号
关注者
0
被浏览
164
关于作者
Metophar
这家伙很懒,什么也没写!
提问
1
回答
0
被采纳
0
关注TA
发私信
相关问题
1
空闲线程调用LED闪烁钩子函数
2
程序跑飞了,msh发命令进不了shell 大循环,一直在idle里
3
RT-Thread Nano 支持CPU使用率计算吗?
4
SCB_CFSR_UFSR:0x02_INVSTATE
5
IDLE 线程总是显示超时状态,是什么原因?
6
idle线程资源回收
7
MSH运行hwtimer_test后把idle线程kill了?
8
idle线程中的rt_free
9
为什么RTT中空闲线程永远不能被挂起?
10
NANO3.15 无法进入空闲线程钩子函数【已解决】
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
2
RT-Thread EtherKit开源以太网硬件正式发布
3
如何在master上的BSP中添加配置yml文件
4
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
5
RT-Thread 发布 EtherKit开源以太网硬件!
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
MicroPython
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
15
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部