硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2947|回复: 3
收起左侧

[RL-TCPnet] RL-TCPnet中API是否都是线程安全的疑问

[复制链接]

36

主题

1446

回帖

1554

积分

至尊会员

积分
1554
发表于 2019-6-1 12:28:44 | 显示全部楼层 |阅读模式
本帖最后由 sanit 于 2019-6-1 12:35 编辑

今天看手册,发现下面这个描述: tcpnet.jpg
The system alloc or free memory function was interrupted by a task or interrupt and then called again. This would corrupt memory handling. Possible reason is wrong usage of TCPnet functions from different tasks. Only BSD socket functions are thread safe, all other functions are not.

假如多个任务调用 tcp_send  这个函数,是否需要互斥呢?这个函数能够多线程不加互斥访问吗?
一直没搞懂线程安全与可重入有啥区别。

感谢各位清楚的解答下我的疑问。谢谢!



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107122
QQ
发表于 2019-6-1 15:07:01 | 显示全部楼层
除了BSD Socket里面的API,其它大部分都不是线程安全的。

进入到新版的7.X后,大部分都是线程安全的了
回复

使用道具 举报

36

主题

1446

回帖

1554

积分

至尊会员

积分
1554
 楼主| 发表于 2019-6-1 18:02:28 | 显示全部楼层
eric2013 发表于 2019-6-1 15:07
除了BSD Socket里面的API,其它大部分都不是线程安全的。

进入到新版的7.X后,大部分都是线程安全的了

老大,如果我多任务调用,是不是加个互斥信号量就可以了。其他没啥需要注意的了吧
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107122
QQ
发表于 2019-6-2 10:09:06 | 显示全部楼层
sanit 发表于 2019-6-1 18:02
老大,如果我多任务调用,是不是加个互斥信号量就可以了。其他没啥需要注意的了吧


可以的,
不过这几个API推荐在一个任务里面就行,那个任务需要操作,给这个任务发消息的方式处理。也比较方便。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 16:11 , Processed in 0.168250 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表