| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'dart:async'; | 5 import 'dart:async'; |
| 6 import 'dart:convert'; | 6 import 'dart:convert'; |
| 7 import 'dart:isolate'; | 7 import 'dart:isolate'; |
| 8 | 8 |
| 9 import 'package:analyzer/instrumentation/instrumentation.dart'; | 9 import 'package:analyzer/instrumentation/instrumentation.dart'; |
| 10 import 'package:analyzer_plugin/channel/channel.dart'; | 10 import 'package:analyzer_plugin/channel/channel.dart'; |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 | 216 |
| 217 @override | 217 @override |
| 218 void close() { | 218 void close() { |
| 219 _receivePort?.close(); | 219 _receivePort?.close(); |
| 220 _errorPort?.close(); | 220 _errorPort?.close(); |
| 221 _exitPort?.close(); | 221 _exitPort?.close(); |
| 222 _isolate = null; | 222 _isolate = null; |
| 223 } | 223 } |
| 224 | 224 |
| 225 @override | 225 @override |
| 226 void kill() { |
| 227 _isolate.kill(priority: Isolate.IMMEDIATE); |
| 228 } |
| 229 |
| 230 @override |
| 226 Future<Null> listen(void onResponse(Response response), | 231 Future<Null> listen(void onResponse(Response response), |
| 227 void onNotification(Notification notification), | 232 void onNotification(Notification notification), |
| 228 {Function onError, void onDone()}) async { | 233 {Function onError, void onDone()}) async { |
| 229 if (_isolate != null) { | 234 if (_isolate != null) { |
| 230 throw new StateError('Cannot listen to the same channel more than once.'); | 235 throw new StateError('Cannot listen to the same channel more than once.'); |
| 231 } | 236 } |
| 232 _receivePort = new ReceivePort(); | 237 _receivePort = new ReceivePort(); |
| 233 if (onError != null) { | 238 if (onError != null) { |
| 234 _errorPort = new ReceivePort(); | 239 _errorPort = new ReceivePort(); |
| 235 _errorPort.listen((error) { | 240 _errorPort.listen((error) { |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 String encodedRequest = JSON.encode(json); | 287 String encodedRequest = JSON.encode(json); |
| 283 instrumentationService.logPluginRequest(pluginId, encodedRequest); | 288 instrumentationService.logPluginRequest(pluginId, encodedRequest); |
| 284 _sendPort.send(json); | 289 _sendPort.send(json); |
| 285 } | 290 } |
| 286 | 291 |
| 287 /** | 292 /** |
| 288 * Spawn the isolate in which the plugin is running. | 293 * Spawn the isolate in which the plugin is running. |
| 289 */ | 294 */ |
| 290 Future<Isolate> _spawnIsolate(); | 295 Future<Isolate> _spawnIsolate(); |
| 291 } | 296 } |
| OLD | NEW |