TBB フロー グラフの条件付き実行を読みましたが、少し異なる問題があります。
複数の入力と複数の出力を持つノードを作成し、条件変数によって実行を制御することは可能ですか? 多分醜いキャストなしで。
グラフをどのように設計したいかの簡単な例を添付しました。TBBフローグラフで実行する最良の方法は?
start_node
に送信start_msg
しますsome_node
start_msg
が空の場合は にsome_node
送信continue_msg
しend_node
、そうでない場合はそれ自体に AND を送信some_node
しますcontinue_msg
data_msg
end_node
continue_msg
が によって受信された場合some_node
、前の start_msg が空であるかどうかがチェックされます。空の場合は acontinue_msg
が に送信されend_node
、そうでない場合は a が送信されdata_msg
ます。+--continue_msg--+ | | +-----+ +-----+ | | | | +----data_msg---+ v | / \ start_node --start_msg--> some_node end_node \ / +--continue_msg--+
私が対処している 1 つの問題:start_msg
サイズがわかっている場合でも、内部に適切な要素がいくつあるかはわかりません (たとえばstart_msg
、 が a を保持しているとします。が悪い要素を見つけたtbb::concurrent_vector<T>
場合、それは無視され、それ自体に a を送信しています。some_node
some_node
continue_msg