shutdown method

Future<void> shutdown()

Implementation

Future<void> shutdown() async {
  if (_shutdownCompleter != null) {
    return _shutdownCompleter!.future;
  }

  _shutdownCompleter = Completer();

  for (final service in _services.reversed) {
    try {
      await service.shutdown();
    } catch (e, stack) {
      _onError('Could not shutdown service gracefully.', e, stack, false);
    }
  }

  _services.clear();
  _shutdownCompleter!.complete();
  _shutdownCompleter = null;
}