dispose method
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();
}