remove method
Implementation
Wait remove({required Object? flag, Object? ref}) {
if (_flags.isEmpty)
return this;
else {
Map<Object?, Set<Object?>> newFlags = _deepCopy();
if (ref == null) {
newFlags.remove(flag);
} else {
Set<Object?> refs = newFlags[flag] ?? {};
refs.remove(ref);
if (refs.isEmpty) newFlags.remove(flag);
}
if (newFlags.isEmpty)
return empty;
else
return Wait._(newFlags);
}
}