Commit 09ca3c18 authored by Alexander Aprelev's avatar Alexander Aprelev Committed by Mikkel Nygaard Ravn

Fix the way how stream event subscription is handled. (#16698)

parent eaf3a664
...@@ -43,7 +43,7 @@ class Tracing { ...@@ -43,7 +43,7 @@ class Tracing {
} else { } else {
final Completer<Null> whenFirstFrameRendered = new Completer<Null>(); final Completer<Null> whenFirstFrameRendered = new Completer<Null>();
vmService.onTimelineEvent.listen((ServiceEvent timelineEvent) { (await vmService.onTimelineEvent).listen((ServiceEvent timelineEvent) {
final List<Map<String, dynamic>> events = timelineEvent.timelineEvents; final List<Map<String, dynamic>> events = timelineEvent.timelineEvents;
for (Map<String, dynamic> event in events) { for (Map<String, dynamic> event in events) {
if (event['name'] == _kFirstUsefulFrameEventName) if (event['name'] == _kFirstUsefulFrameEventName)
......
...@@ -175,16 +175,16 @@ class VMService { ...@@ -175,16 +175,16 @@ class VMService {
Future<Null> get done => _peer.done; Future<Null> get done => _peer.done;
// Events // Events
Stream<ServiceEvent> get onDebugEvent => onEvent('Debug'); Future<Stream<ServiceEvent>> get onDebugEvent => onEvent('Debug');
Stream<ServiceEvent> get onExtensionEvent => onEvent('Extension'); Future<Stream<ServiceEvent>> get onExtensionEvent => onEvent('Extension');
// IsolateStart, IsolateRunnable, IsolateExit, IsolateUpdate, ServiceExtensionAdded // IsolateStart, IsolateRunnable, IsolateExit, IsolateUpdate, ServiceExtensionAdded
Stream<ServiceEvent> get onIsolateEvent => onEvent('Isolate'); Future<Stream<ServiceEvent>> get onIsolateEvent => onEvent('Isolate');
Stream<ServiceEvent> get onTimelineEvent => onEvent('Timeline'); Future<Stream<ServiceEvent>> get onTimelineEvent => onEvent('Timeline');
// TODO(johnmccutchan): Add FlutterView events. // TODO(johnmccutchan): Add FlutterView events.
// Listen for a specific event name. // Listen for a specific event name.
Stream<ServiceEvent> onEvent(String streamId) { Future<Stream<ServiceEvent>> onEvent(String streamId) async {
_streamListen(streamId); await _streamListen(streamId);
return _getEventController(streamId).stream; return _getEventController(streamId).stream;
} }
...@@ -1328,7 +1328,7 @@ class FlutterView extends ServiceObject { ...@@ -1328,7 +1328,7 @@ class FlutterView extends ServiceObject {
// When this completer completes the isolate is running. // When this completer completes the isolate is running.
final Completer<Null> completer = new Completer<Null>(); final Completer<Null> completer = new Completer<Null>();
final StreamSubscription<ServiceEvent> subscription = final StreamSubscription<ServiceEvent> subscription =
owner.vm.vmService.onIsolateEvent.listen((ServiceEvent event) { (await owner.vm.vmService.onIsolateEvent).listen((ServiceEvent event) {
// TODO(johnmccutchan): Listen to the debug stream and catch initial // TODO(johnmccutchan): Listen to the debug stream and catch initial
// launch errors. // launch errors.
if (event.kind == ServiceEvent.kIsolateRunnable) { if (event.kind == ServiceEvent.kIsolateRunnable) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment