Skip to content

Commit

Permalink
Don't wait on stream listening in DevTools start up (#3333)
Browse files Browse the repository at this point in the history
  • Loading branch information
elliette authored Sep 9, 2021
1 parent da7adac commit 5058eb0
Showing 1 changed file with 17 additions and 16 deletions.
33 changes: 17 additions & 16 deletions packages/devtools_app/lib/src/service_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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
Expand All @@ -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;
Expand Down

0 comments on commit 5058eb0

Please sign in to comment.