onEmpty method
Implementation
Future<void> onEmpty() {
Completer c = Completer();
if (_queue.size == 0) {
c.complete();
} else {
var existingResolve = _resolveEmpty;
_resolveEmpty = () {
existingResolve();
c.complete();
};
}
return c.future;
}