Uh oh!
There was an error while loading. Please reload this page.
Drain In-Flight Encodes on Export Errors - #29
Conversation
…-export-encode-drain-head2
Starting initial review of |
There was a problem hiding this comment.
Approved. The shared first-failure latch and single drain authority give this concurrency fix a coherent ownership boundary: every in-flight encode is observed and its sample is closed, while error precedence remains stable across render, audio, encoder, abort, and cleanup races.
The focused coverage exercises the meaningful overlap and ordering cases, including late encoder failures during render errors and aborts. I found no actionable correctness or production-safety concerns in the intrinsic diff.
Reviewed `1f8df903`...`ae89a47c`. Diff collection and GitHub posting were handled by the automation.Review head |
Starting new changes review of |
There was a problem hiding this comment.
Approved. The shared first-failure latch, separate cleanup latch, and non-rejecting encode settlement provide a coherent ownership boundary for this concurrency path: every in-flight encode is observed and its sample is closed, while primary error precedence remains stable across render, audio, encoder, abort, and cleanup races.
I also reviewed the complete expanded loop test file. Its race matrix and focused cases cover the meaningful source-order, late-rejection, drain, listener-cleanup, progress, ordering, keyframe, and sample-closure paths. I found no actionable correctness or production-safety concerns in the incremental diff.
Reviewed `ae89a47c`...`9cf093b8`. Diff collection and GitHub posting were handled by the automation.
Summary
Failed exports now always observe and drain in-flight encoder work while preserving the primary render or pending error, preventing late unhandled rejections from poisoning later exports.
Technical details
AbortErrorand discard an encoder error.Test plan
Open items
Intentionally stacked on
v1-editor-hardening/ PR #25. This is review-only until that base lands or integrates; do not retarget it tomain.