dispose method

  1. @override
Future<void> dispose()
override

Disposes the ILifecycle implementation, releasing any resources.

Implementation

@override
Future<void> dispose() async {
  if (disposed) return;
  final pending = <Future<void>>[];
  for (final resource in _resources.values) {
    if (!resource.disposed) {
      final result = resource.dispose();
      if (result is Future<void>) pending.add(result);
    }
  }
  await Future.wait(pending);
  _resources.clear();
  await _connection.close();
  await super.dispose();
}