mirror of
https://github.com/flutter/flutter
synced 2024-10-13 11:42:54 +00:00
retry getting the main isolate (#68894)
This commit is contained in:
parent
ec0a757430
commit
9951638f3b
|
@ -96,11 +96,28 @@ class VMServiceFlutterDriver extends FlutterDriver {
|
||||||
final VMServiceClientConnection connection =
|
final VMServiceClientConnection connection =
|
||||||
await vmServiceConnectFunction(dartVmServiceUrl, headers: headers);
|
await vmServiceConnectFunction(dartVmServiceUrl, headers: headers);
|
||||||
final VMServiceClient client = connection.client;
|
final VMServiceClient client = connection.client;
|
||||||
final VM vm = await client.getVM();
|
|
||||||
final VMIsolateRef isolateRef = isolateNumber ==
|
Future<VMIsolateRef> _waitForRootIsolate() async {
|
||||||
null ? vm.isolates.first :
|
bool _checkIsolate(VMIsolateRef ref) => ref.number == isolateNumber;
|
||||||
vm.isolates.firstWhere(
|
while (true) {
|
||||||
(VMIsolateRef isolate) => isolate.number == isolateNumber);
|
final VM vm = await client.getVM();
|
||||||
|
if (vm.isolates.isEmpty || (isolateNumber != null && !vm.isolates.any(_checkIsolate))) {
|
||||||
|
await Future<void>.delayed(_kPauseBetweenReconnectAttempts);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
return isolateNumber == null
|
||||||
|
? vm.isolates.first
|
||||||
|
: vm.isolates.firstWhere(_checkIsolate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final VMIsolateRef isolateRef = await _warnIfSlow<VMIsolateRef>(
|
||||||
|
future: _waitForRootIsolate(),
|
||||||
|
timeout: kUnusuallyLongTimeout,
|
||||||
|
message: isolateNumber == null
|
||||||
|
? 'The root isolate is taking an unuusally long time to start.'
|
||||||
|
: 'Isolate $isolateNumber is taking an unusually long time to start.',
|
||||||
|
);
|
||||||
_log('Isolate found with number: ${isolateRef.number}');
|
_log('Isolate found with number: ${isolateRef.number}');
|
||||||
|
|
||||||
VMIsolate isolate = await isolateRef.loadRunnable();
|
VMIsolate isolate = await isolateRef.loadRunnable();
|
||||||
|
|
Loading…
Reference in a new issue