close method
Implementation
@mustCallSuper
Future<void> close() {
if (_isClosed) return Future.value();
_isClosed = true;
_closers.forEach((fn) => fn());
if (_currentAction == null) return Future.sync(_actuallyClose);
_closeCompleter = Completer.sync();
return _closeCompleter!.future;
}