diff --git a/packages/devtools_app/lib/src/service_manager.dart b/packages/devtools_app/lib/src/service_manager.dart index a40e5ddaeab..a4226c56914 100644 --- a/packages/devtools_app/lib/src/service_manager.dart +++ b/packages/devtools_app/lib/src/service_manager.dart @@ -245,19 +245,6 @@ class ServiceConnectionManager { service.onEvent(serviceStreamName).listen(handleServiceEvent); - _connectedState.value = const ConnectedState(true); - - final isolates = [ - ...vm.isolates, - if (preferences.vmDeveloperModeEnabled.value) ...vm.systemIsolates, - ]; - - await isolateManager.init(isolates); - if (service != this.service) { - // A different service has been opened. - return; - } - final streamIds = [ EventStreams.kDebug, EventStreams.kExtension, @@ -271,9 +258,9 @@ class ServiceConnectionManager { serviceStreamName, ]; - await Future.wait(streamIds.map((String id) async { + for (final id in streamIds) { try { - await service.streamListen(id); + unawaited(service.streamListen(id)); } catch (e) { if (id.endsWith('Logging')) { // Don't complain about '_Logging' or 'Logging' events (new VMs don't @@ -285,7 +272,21 @@ class ServiceConnectionManager { ); } } - })); + } + + if (service != this.service) { + // A different service has been opened. + return; + } + + _connectedState.value = const ConnectedState(true); + + final isolates = [ + ...vm.isolates, + if (preferences.vmDeveloperModeEnabled.value) ...vm.systemIsolates, + ]; + + await isolateManager.init(isolates); if (service != this.service) { // A different service has been opened. return;