Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading OracleSolaris 11.2--getinfo入口点和多线程访问_Multithreading_Mutex_Solaris_Device Driver_Opensolaris - Fatal编程技术网

Multithreading OracleSolaris 11.2--getinfo入口点和多线程访问

Multithreading OracleSolaris 11.2--getinfo入口点和多线程访问,multithreading,mutex,solaris,device-driver,opensolaris,Multithreading,Mutex,Solaris,Device Driver,Opensolaris,我正在开始实现第一个Solaris设备驱动程序。在实现getinfo入口点例程时,我们是否需要注意不同的内核线程可以调用它?通常,此函数会更新每个实例的softstate数据结构,如果是多线程访问,则该结构必须受到互斥的保护 所以我的问题是,系统的多个线程是否可以调用getinfo回调,或者操作系统保证只有一个线程调用它?mangetinfo对此不是很清楚 谢谢。我也找不到明确的答案。我建议你要安全和健康。你会花更少的时间去做这件事,而不是继续寻找一个明确的答案来证明不能同时打电话(或者总是安全

我正在开始实现第一个Solaris设备驱动程序。在实现
getinfo
入口点例程时,我们是否需要注意不同的内核线程可以调用它?通常,此函数会更新每个实例的softstate数据结构,如果是多线程访问,则该结构必须受到互斥的保护

所以我的问题是,系统的多个线程是否可以调用
getinfo
回调,或者操作系统保证只有一个线程调用它?
mangetinfo
对此不是很清楚


谢谢。

我也找不到明确的答案。我建议你要安全和健康。你会花更少的时间去做这件事,而不是继续寻找一个明确的答案来证明不能同时打电话(或者总是安全的)

最糟糕的情况是,你每次通话的花费不到一毫秒。最好的情况是,您已经保护自己免受内核恐慌或某个地方的数据损坏。在这两种情况下,您都会学到更多关于编写Solaris设备驱动程序的知识


这可能是Solaris文档的一个典型问题—类似的内容可能隐藏在某个手册页的某个地方,但如果您不知道要查看哪一个,则无法找到它。(现在我已经回答了,请注意:知道去哪里看的人将发布最终答案…

基于对我可用的源代码的快速回顾:不,你不需要使用互斥锁来保护*getinfo()