fix: apply lossless push in PoolObjectNode too
PoolNode and PoolObjectNode each have their own push_one_out(). The previous commit only reached PoolNode's copy, so ObjectNode-based pipelines — the common case — still dropped on overflow with lossless enabled. Verified end to end: a 2300-frame source now reports exactly 2300 frames at every stage, where it previously delivered 774 to the second node. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -732,6 +732,11 @@ private:
|
||||
ch->push_sentinel(std::move(val));
|
||||
return;
|
||||
}
|
||||
// Lossless mode: block until the consumer drains instead of dropping.
|
||||
if (lossless_) {
|
||||
ch->push_blocking(std::move(val));
|
||||
return;
|
||||
}
|
||||
try {
|
||||
ch->push(std::move(val));
|
||||
} catch (const ChannelOverflowError&) {
|
||||
|
||||
Reference in New Issue
Block a user