- 论坛徽章:
- 0
|
比如,一种情景是,在device_reset() 或者bus_reset() 中上了锁,所以usb_stor_control_thread() 这
边就不可以在这个时候执行命令,usb_stor_acquire_resources() 中的GET_MAX_LUN 也不能执行,因
为很显然,正在reset 呢,就好比你的电脑正在重起你当然不可能执行一个打开浏览器的操作.
而另一种情景,当usb_stor_control_thread() 正在执行命令,那么当然
usb_stor_release_resources() 函数就不能释放资源了,甚至storage_disconnect() 也得等待,得等你
当前这个命令执行完了,它才会去执行断开的代码.就好比你正在考场上战战兢兢的答题,老师却强行把你的
试卷收上去,你说你会不会很愤怒?(当然,如果是因为你作弊被发现,那就另当别论了.)
总之,这种关系都是相互的,相互制约,同时也保证了整个系统正常运转,如果谁违规了,那么伤害的是大家
的利益.这就是Linux 内核的同步机制.
好了.我的故事讲完了.蓦然回首, 发现, 其实, 我一直在寻觅, 寻觅这个故事的结局, 寻觅自己灵魂的出
路, 最终, 追寻到了前者, 却一直没有找到后者. |
|