cancelBindings method
Cancel all active listeners, timers and close the controllers.
This does not dispose other disposables bound with bind
.
dispose calls this function internally.
Implementation
Future<void> cancelBindings() {
final ret = <Future>[];
final subs = _subs;
final uniques = _uniqueSubs;
final ctrls = _ctrls;
final timers = _timers;
final utimers = _uniqueTimers;
final listeners = _uniqueListeners;
_subs = {};
_uniqueSubs = {};
_ctrls = {};
_timers = {};
_uniqueTimers = {};
_uniqueListeners = {};
for (final s in subs) {
ret.add(s.cancel());
}
for (final s in uniques.values) {
ret.add(s.cancel());
}
for (final tup in listeners.values) {
tup.item1.removeListener(tup.item2);
}
for (final c in ctrls) {
ret.add(c.close());
}
for (final t in timers) {
t.cancel();
}
for (final t in utimers.values) {
t.cancel();
}
return Future.wait(ret);
}