2012-04-18 19 views
8

this e-mail from 2008を除いて、V4L2のスレッド安全性の特性については何の言及も見つかりませんでした。それは大きなカーネルロックについて話していますが、私は今行っていると思います。スレッドセーフな方法はV4L2ですか?

誰でもこの情報を更新していますか?私はioctl(私は特にVIDIOC_DQBUFVIDIOC_QBUFについて考えています)は、シリアル化せずに複数のスレッドから同じV4L2ファイル記述子を使用できますか?上記の議論は、答えが運転者に依存することを示しているようですが、とにかく質問したいと思いました。

答えて

2

この仕様では、V4L2がスレッドセーフであるかどうかについては言及していません。しかし、実装によっては実際にスレッドセーフであるようです。

POSIX.1-2001およびPOSIX.1-2008では、標準で指定されているすべての関数が、特定の機能を除いてスレッドセーフである必要があります。 ioctl()はその1つではないので、スレッドセーフです。 しかし、ioctl()はキャンセルポイントなので、スレッドはioctl()に到達すると終了できます。

私は正しい解決策は、V4L2がスレッドセーフではないと仮定して、それに応じてロックを行うことだと思います。

+1

ありがとうございます!賞品ポイントをいくつか持っています。 – gspr

関連する問題