doRegister method
void
doRegister(
)
inherited
Implementation
@protected
void doRegister() {
if (_registering) {
_dirty = true;
return;
}
_registering = true;
for (final e in _entries.values) e.used = false;
final gen = ++_generation;
final result = registerObservers();
void complete() {
if (!_registering || gen != _generation) return;
_entries.removeWhere((key, entry) {
if (!entry.used) {
entry.disposable.dispose();
return true;
}
return false;
});
_registering = false;
if (_dirty) {
_dirty = false;
doRegister();
}
}
result is Future ? result.whenComplete(complete) : complete();
}