close method
Stops accepting requests and releases transport resources.
Implementation
@override
Future<void> close() {
return _closing ??= Future<void>.microtask(() async {
_client.close();
final timer = Timer(_options.shutdownTimeout, () {
for (final token in _active.keys.toList()) {
token.cancel('Transport shutdown.');
}
_client.close(force: true);
});
try {
await Future.wait(_active.values.map((done) => done.future).toList());
} finally {
timer.cancel();
_client.close(force: true);
}
});
}