読み取り専用でのみ使用されているイメージをスレッド間で共有しようとしています。通常、私はboost::shared_ptrsでこの種のことを行いますが、cv::Matはすでにその下の参照カウントコンテナーであるため、スレッドセーフへの参照に基づいてスレッドセーフであると仮定して、同じ方法で使用しようとしていますここでの参照カウント:
http://opencv.willowgarage.com/documentation/cpp/basic_structures.html- https://docs.opencv.org/2.4/modules/core/doc/basic_structures.html
ただし、実際にはスレッドセーフではないことを示す可能性のある問題が発生しています。その割り当ては非アトミックです。元のオブジェクトが既に破棄されていることを意味する参照カウントのインクリメント内で seg-fault が発生することがあります。
したがって、具体的な質問は次のとおりです。
- cv::Mat 割り当てはアトミックですか?