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));
|
ch->push_sentinel(std::move(val));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Lossless mode: block until the consumer drains instead of dropping.
|
||||||
|
if (lossless_) {
|
||||||
|
ch->push_blocking(std::move(val));
|
||||||
|
return;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
ch->push(std::move(val));
|
ch->push(std::move(val));
|
||||||
} catch (const ChannelOverflowError&) {
|
} catch (const ChannelOverflowError&) {
|
||||||
|
|||||||
Reference in New Issue
Block a user