2012-04-18 45 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