Reclaim drain owns its work: invalidation only bumps a generation, and a generation that moved aborts the tick's commit and its release.

This commit is contained in:
2026-08-06 21:08:34 -04:00
parent f04c704353
commit 5dcfd3a53f
7 changed files with 321 additions and 68 deletions
+4 -1
View File
@@ -104,7 +104,10 @@ std::vector<std::string> selectedTrackGuids() {
}
// Reapplies the CURRENT active mode so a membership mutation takes visible effect
// immediately (park/unpark/re-derive parents).
// immediately (park/unpark/re-derive parents). The return is deliberately discarded: a
// refused reapply leaves the membership edit standing and unapplied, and the user's next
// edit or mode switch reapplies it. What must NOT be dropped with it is the reclaimer's
// queue, which is why applyMode invalidates on its refusal path too (view.cpp).
void reapplyActiveMode() {
applyMode(g_session->view(), g_session->view().activeModeId(), nullptr);
}