dispose method

  1. @override
void dispose()
override

Disposes all children, fails pending cond completers, then disposes this.

Each step is independently guarded so a throw in one cannot prevent the others from running — super.dispose in particular MUST run, or the pod is left half-disposed (_listeners still attached) and subsequent set calls would keep firing.

Implementation

@override
void dispose() {
  try {
    disposeChildren();
  } catch (e) {
    Log.err(e, tags: {#df_pod});
  }
  try {
    _failPendingConds();
  } catch (e) {
    Log.err(e, tags: {#df_pod});
  }
  super.dispose();
}