Put the FX reclaimer to sleep on a project-state load instead of waking it

abandon() clears the wakeup where invalidate() raises it, so File > Revert
cannot converge FX or spend park records against a model nothing re-read.
This commit is contained in:
2026-08-07 14:23:56 -04:00
parent 39b995e824
commit 67d9ec3da9
4 changed files with 106 additions and 9 deletions
+3 -3
View File
@@ -281,9 +281,9 @@ void fxReclaimLabelUndoSpan(const char* label, int mask) {
void fxReclaimEndUndoSpan() { closeSpan(); }
void fxReclaimAbandonForStateLoad() {
// Close FIRST and unconditionally. The abandon below only stops future writes; the
// block is what a Ctrl-Z would otherwise close over the wrong state, and it is open
// whether or not a drain is on the stack at all.
// Close FIRST and unconditionally. The abandon below stops the drain and puts the loop
// to sleep; the block is what a Ctrl-Z would otherwise close over the wrong state, and
// it is open whether or not a drain is on the stack at all.
closeSpan();
g_queue.abandon();
}