dispose method
void
dispose()
Marks this controller disposed — any in-flight show stops mutating
state from this point on and its onComplete is dropped, never
called (same reasoning as SceneTransitionController.dispose: a
widget tearing down shouldn't have a stale timer reach back into it
later). show called after dispose is a safe no-op.
Implementation
void dispose() {
_disposed = true;
_activeToken = null;
_onComplete = null;
_wakeSuspendedWait();
}