【问题标题】:How thread-safe is V4L2?V4L2 的线程安全性如何?
【发布时间】:2012-04-18 20:52:29
【问题描述】:

除了this e-mail from 2008,我找不到任何提及V4L2 的线程安全特性的内容。它谈到了大内核锁,我猜它现在已经消失了,对吧?

有人有这方面的最新信息吗?我可以ioctl(我特别考虑VIDIOC_DQBUFVIDIOC_QBUF)来自多个线程的相同V4L2 文件描述符而无需序列化吗?上面引用的讨论似乎表明答案取决于驱动程序,但我想我还是会问。

【问题讨论】:

    标签: c++ c thread-safety posix v4l2


    【解决方案1】:

    规范没有提到 V4L2 是否是线程安全的。然而,似乎有些实现实际上是线程安全的。

    POSIX.1-2001 和 POSIX.1-2008 要求标准中指定的所有函数都应该是线程安全的,除了一些特定的函数。 ioctl() 不是其中之一,因此它是线程安全的。 但是ioctl()是一个取消点,所以线程一旦到达ioctl()就可以终止。

    我认为正确的解决方案是假设 V4L2 不是线程安全的并相应地进行锁定。

    【讨论】:

      猜你喜欢
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多