shutdown method
Handles cleanup of all streams and other resources on shutdown.
Implementation
@override
Future<void> shutdown() async {
await super.shutdown();
await _resourceListChangedController.close();
final subscribed = _subscribedResources.values.toList();
_subscribedResources.clear();
await subscribed.map((c) => c.close()).wait;
}