Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
POSIX
rtthread4.03
select
串口接收使用select后,偶发线程挂起了无法超时恢复
发布于 2023-10-18 09:29:39 浏览:443
订阅该版
![阻塞在这里](https://oss-club.rt-thread.org/uploads/20231018/8c2b695d51d73a1a52c9b64c8a769453.png) 使用时发现偶发有个线程卡死,加了日志打印,发现在某次接收的时候在这里面卡住了。 目前的临时解决办法就是每次接收完之后加个定时器,超时后就使用rt_thread_resume恢复线程来临时解决卡住的问题。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20231018/8cda9701b8e6cd9b921f732fd3857d24.png) 看了select的实现,没看出来为啥会一直阻塞。。
查看更多
1
个回答
默认排序
按发布时间排序
出出啊
2023-10-18
恃人不如自恃,人之为己者不如己之自为也
在 `rt_thread_resume(m_selfThread);` 之前打印一下线程的 `list.prev` `list.next` `tlist.prev` `tlist.next` 等几个链表指针的值,重点是后俩是不是都指向了它自己。 https://gitee.com/thewon/od_cmds/blob/master/od_cmds.c 这里有个专门的工具可以查看更多详细信息。 进入 `select` 阻塞挂起,多半是被某个 ipc 对象阻塞挂起了。这个时候是可以通过 `od_thread` 函数调用打印出来被哪个 ipc 对象挂起了的。 如果 `select` 超时没退出返回,要么是 ipc 机制失灵了,要么是,超时时间到了以后,线程从 ipc 对象等待列表上摘下来,然后还没来得及恢复到就绪线程列表上,中间被某件任务调度打断,这个时候 `tlist.prev` `tlist.next` 都指向了 `tlist` 自己。由此可以辨别出问题在哪儿。 但是,如果真的出现这种情况,问题就比较严重了,说明任务调度出现漏洞了
撰写答案
登录
注册新账号
关注者
0
被浏览
443
关于作者
这是个昵称
这家伙很懒,什么也没写!
提问
1
回答
0
被采纳
0
关注TA
发私信
相关问题
1
移植rt-thread2.1.0缺少components/pthreads里的posix_types.h文件中包含的sy
2
[征集自愿者] POSIX相关章节文档编写
3
RT-Thread POSIX支持
4
POSIX标准接口针对文件系统没有导出fsync
5
POSIX接口的select还没实现?
6
pthread 组建bug反馈
7
RTT中的POSIX支持
8
RT-Thread 如何用POSIX接口
9
使用 RT_USING_POSIX finsh能显示,但不能输入
10
请教、讨论POSIX接口、dfs中的pos和size问题
推荐文章
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
RT-Thread项目助手v0.2.0 - 支持Env Windows
2
RttreadV5.10上,GD32F450Z RTC时间显示问题
3
rt-smart启动流程分析
4
EtherKit快速上手PROFINET
5
RTThread USB转串口无法接收数据
热门标签
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
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部