Я новичок в Intel Threading Building Blocks и играю с компонентом потокового графа. До сих пор это работало в основном хорошо. Мои сообщения между узлами имеют тип shared_ptr
, поэтому они легко копируются, легковесны, а базовый ресурс удаляется в конце цикла графа...
За исключением сообщений, исходящих от моего input_node
. input_node
устроен так, что он содержит копию своего последнего выходного значения. Это означает, что любой ресурс, удерживаемый значением, выводимым input_node
, не будет освобожден до тех пор, пока input_node
не сгенерирует свой следующий вывод.
Это кажется неудобным/несовместимым с остальной частью API. Есть мысли как с этим бороться? Думаю, я мог бы написать свой собственный узел, но я бы не хотел. Должен ли я просто использовать try_put
? Если да, то как мне сообщить графику, когда я закончу ввод данных, чтобы wait_for_all
не закончилось раньше?