2012-04-18 44 views
8

除了this e-mail from 2008,我找不到任何關於V4L2螺紋安全特性的提及。它談到了大內核鎖定,我想現在已經不在了,對吧?V4L2的線程安全性如何?

有沒有人有關於此的任何更新信息?我可以ioctl(我在想特別是關於VIDIOC_DQBUFVIDIOC_QBUF)從多個線程沒有序列化相同的V4L2文件描述符?上面提到的討論似乎表明答案是依賴於驅動程序的,但我想我會問。

回答

2

該規範沒有提到V4L2是否是線程安全的。但是,似乎有些實現實際上是線程安全的。

POSIX.1-2001和POSIX.1-2008要求標準中規定的所有功能應該是線程安全的,除了一些特定的功能。 ioctl()不是其中之一,所以它是線程安全的。 但是,ioctl()是一個取消點,所以線程一旦到達ioctl()就可以終止。

我認爲正確的解決方案是假設V4L2不是線程安全的,並相應地進行鎖定。

+1

謝謝!有一些賞金點。 – gspr 2012-04-26 16:52:26