OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5729|回复: 3

自旋锁为什么刚上锁就解锁?dev_stats的值谁给它的?

[复制链接]

6

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2019-9-10
在线时间
26 小时
发表于 2020-3-12 20:59:12 | 显示全部楼层 |阅读模式
2金钱

微信图片_20200312205753.png
QQ图片20200312205741.png

最佳答案

查看完整内容[请看2#楼]

上锁的地方都是需要被重点保护的地方,不可被打断,意思就是说如果被打断的话,很可能执行的结果跟你想象的是不一样的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

712

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2178
金钱
2178
注册时间
2018-8-27
在线时间
258 小时
发表于 2020-3-12 20:59:13 | 显示全部楼层
xxxuuuxxx 发表于 2020-3-12 21:13
因为自旋锁需要占用锁的时间应该尽可能短,所以上了锁就,标记完,就解锁吗?

上锁的地方都是需要被重点保护的地方,不可被打断,意思就是说如果被打断的话,很可能执行的结果跟你想象的是不一样的
森罗万象
回复

使用道具 举报

6

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2019-9-10
在线时间
26 小时
 楼主| 发表于 2020-3-12 21:13:45 | 显示全部楼层
因为自旋锁需要占用锁的时间应该尽可能短,所以上了锁就,标记完,就解锁吗?
这个人很懒,什么都没有留下
回复

使用道具 举报

0

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2018-7-6
在线时间
133 小时
发表于 2020-3-13 13:06:43 | 显示全部楼层
本帖最后由 专注嵌入式 于 2020-3-13 13:10 编辑

dev_stats在设备结构体中定义完默认是0,在“设备打开”函数中通过判别dev_stats的值,确定设备是否被使用,如果没使用则给dev_stats+1,标记设备使用,在“设备关闭”函数中对dev_stats-1;(这样dev_stats值不就有了!!)
上面描述也可以看出,本实验中主要就是通过dev_stats变量实现设备的互斥访问,那也就需要使用互斥锁对dev_stats保护,所以这个问题并不是你说的刚上锁就解锁,而是上锁后,对dev_stats操作完,然后解锁。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 08:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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