|
4 | 4 |
|
5 | 5 | import 'package:vm_service/vm_service.dart'; |
6 | 6 |
|
| 7 | +import '../../service/vm_service_wrapper.dart'; |
7 | 8 | import '../../shared/globals.dart'; |
8 | 9 | import '../../shared/primitives/utils.dart'; |
9 | 10 | import '../../shared/utils/utils.dart'; |
@@ -68,23 +69,31 @@ class NetworkService { |
68 | 69 | DebounceCancelledCallback? cancelledCallback, |
69 | 70 | }) async { |
70 | 71 | if (serviceConnection.serviceManager.service == null) return; |
71 | | - final timestampObj = await serviceConnection.serviceManager.service! |
72 | | - .getVMTimelineMicros(); |
73 | | - if (cancelledCallback?.call() ?? false) return; |
| 72 | + try { |
| 73 | + final timestampObj = await serviceConnection.serviceManager.service! |
| 74 | + .getVMTimelineMicros(); |
| 75 | + if (cancelledCallback?.call() ?? false) return; |
74 | 76 |
|
75 | | - final timestamp = timestampObj.timestamp!; |
76 | | - final sockets = await _refreshSockets(); |
77 | | - if (cancelledCallback?.call() ?? false) return; |
78 | | - |
79 | | - networkController.lastSocketDataRefreshMicros = timestamp; |
80 | | - List<HttpProfileRequest>? httpRequests; |
81 | | - httpRequests = await _refreshHttpProfile(); |
82 | | - if (cancelledCallback?.call() ?? false) return; |
83 | | - |
84 | | - networkController.processNetworkTraffic( |
85 | | - sockets: sockets, |
86 | | - httpRequests: httpRequests, |
87 | | - ); |
| 77 | + final timestamp = timestampObj.timestamp!; |
| 78 | + final sockets = await _refreshSockets(); |
| 79 | + if (cancelledCallback?.call() ?? false) return; |
| 80 | + |
| 81 | + networkController.lastSocketDataRefreshMicros = timestamp; |
| 82 | + List<HttpProfileRequest>? httpRequests; |
| 83 | + httpRequests = await _refreshHttpProfile(); |
| 84 | + if (cancelledCallback?.call() ?? false) return; |
| 85 | + |
| 86 | + networkController.processNetworkTraffic( |
| 87 | + sockets: sockets, |
| 88 | + httpRequests: httpRequests, |
| 89 | + ); |
| 90 | + } on RPCError catch (e) { |
| 91 | + if (!e.isServiceDisposedError) { |
| 92 | + // Swallow exceptions related to trying to interact with an |
| 93 | + // already-disposed service connection. Otherwise, rethrow. |
| 94 | + rethrow; |
| 95 | + } |
| 96 | + } |
88 | 97 | } |
89 | 98 |
|
90 | 99 | Future<List<HttpProfileRequest>> _refreshHttpProfile() async { |
|
0 commit comments