@override Future<void> close() { if (_closedCompleter.isCompleted) return Future<void>.value(); return _closeFuture ??= _close(); }