解决网络编程中select函数的bug及sal层的bug

发布于 2020-05-10 13:38:32
1、 rt-thread 3.1.3 的select功能中poll.c, 由于poll调用底层的设备驱动poll函数,此函数返回错误时,会导致select返回1,产生错误的结果,需要修改poll中的相关函数来处理,一共修改2处,如下:这时使用select函数是要注意,当select函数返回-1时,注意调用的select函数的线程中在处理返回-1时要调用rt_thread_mdelay,否则这个线程不会让出cpu时间,导致比此线程优先级低的线程从此无法运行了。
[img=0,337][/img]
[img=0,419]https://img-blog.csdnimg.cn/20200510132753980.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZocWxvbmd0ZW5n,size_16,color_FFFFFF,t_70[/img]



sal_socket.c文件中的sal_accept函数没有处理netdev设备down的情况,增加上相关代码,如下
[img=0,364]https://img-blog.csdnimg.cn/20200510133023230.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZocWxvbmd0ZW5n,size_16,color_FFFFFF,t_70[/img]



这时收集了我使用rt thread系统发现的bug及改进方法,https://blog.csdn.net/fhqlongteng/article/details/103234659,有同学遇到问题时可以进来查看一下。




查看更多

关注者
0
被浏览
435
1 个回答
sync
sync 2020-05-11
多谢楼主,这个太强了,先收藏备用了

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览