Skip to content

Commit 89cb5d2

Browse files
authored
Provide isolate id for rpc request to ensure they are run on correct (UI) thread. (#17616)
1 parent 2e24351 commit 89cb5d2

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

‎packages/flutter_tools/lib/src/vmservice.dart‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -905,7 +905,11 @@ class VM extends ServiceObjectOwner {
905905
if (!isFlutterEngine)
906906
return;
907907
_viewCache.clear();
908-
await vmService.vm.invokeRpc('_flutter.listViews', timeout: kLongRequestTimeout);
908+
for (Isolate isolate in isolates) {
909+
await vmService.vm.invokeRpc('_flutter.listViews',
910+
timeout: kLongRequestTimeout,
911+
params: <String, dynamic> {'isolateId': isolate.id});
912+
}
909913
}
910914

911915
Iterable<FlutterView> get views => _viewCache.values;
@@ -1393,6 +1397,7 @@ class FlutterView extends ServiceObject {
13931397
assert(assetsDirectory != null);
13941398
await owner.vmService.vm.invokeRpc('_flutter.setAssetBundlePath',
13951399
params: <String, dynamic>{
1400+
'isolateId': _uiIsolate.id,
13961401
'viewId': id,
13971402
'assetDirectory': assetsDirectory.toFilePath(windows: false)
13981403
});
@@ -1401,7 +1406,8 @@ class FlutterView extends ServiceObject {
14011406
bool get hasIsolate => _uiIsolate != null;
14021407

14031408
Future<Null> flushUIThreadTasks() async {
1404-
await owner.vm.invokeRpcRaw('_flutter.flushUIThreadTasks');
1409+
await owner.vm.invokeRpcRaw('_flutter.flushUIThreadTasks',
1410+
params: <String, dynamic>{'isolateId': _uiIsolate.id});
14051411
}
14061412

14071413
@override

0 commit comments

Comments
 (0)