Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(595)

Unified Diff: runtime/observatory/lib/src/elements/debugger.dart

Issue 1217823009: Make VM event streams look like real dart streams. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge with master Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/observatory/lib/src/app/page.dart ('k') | runtime/observatory/lib/src/elements/heap_profile.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/observatory/lib/src/elements/debugger.dart
diff --git a/runtime/observatory/lib/src/elements/debugger.dart b/runtime/observatory/lib/src/elements/debugger.dart
index 2fc89dac77b1d6d5fd4c2cd6224696cc08fa890a..31f064ad2fd5b03a1efbaab89ea62a58c9f8eccc 100644
--- a/runtime/observatory/lib/src/elements/debugger.dart
+++ b/runtime/observatory/lib/src/elements/debugger.dart
@@ -7,7 +7,6 @@ library debugger_page_element;
import 'dart:async';
import 'dart:html';
import 'observatory_element.dart';
-import 'package:observatory/app.dart';
import 'package:observatory/cli.dart';
import 'package:observatory/debugger.dart';
import 'package:observatory/service.dart';
@@ -921,9 +920,6 @@ class ObservatoryDebugger extends Debugger {
}
}
Future.wait(pending).then((_) {
- if (_subscription == null) {
- _subscription = vm.events.stream.listen(_onEvent);
- }
_refreshStack(isolate.pauseEvent).then((_) {
reportStatus();
});
@@ -948,7 +944,6 @@ class ObservatoryDebugger extends Debugger {
}
Isolate get isolate => _isolate;
Isolate _isolate;
- var _subscription;
void init() {
console.newline();
@@ -1080,7 +1075,7 @@ class ObservatoryDebugger extends Debugger {
});
}
- void _onEvent(ServiceEvent event) {
+ void onEvent(ServiceEvent event) {
switch(event.kind) {
case ServiceEvent.kIsolateStart:
{
@@ -1226,7 +1221,6 @@ class ObservatoryDebugger extends Debugger {
@CustomTag('debugger-page')
class DebuggerPageElement extends ObservatoryElement {
- @published ObservatoryApplication app;
@published Isolate isolate;
isolateChanged(oldValue) {
@@ -1240,6 +1234,9 @@ class DebuggerPageElement extends ObservatoryElement {
debugger.page = this;
}
+ Future<StreamSubscription> _isolateSubscriptionFuture;
+ Future<StreamSubscription> _debugSubscriptionFuture;
+
@override
void attached() {
super.attached();
@@ -1267,6 +1264,20 @@ class DebuggerPageElement extends ObservatoryElement {
debugger.input = $['commandline'];
debugger.input.debugger = debugger;
debugger.init();
+
+ _isolateSubscriptionFuture =
+ app.vm.listenEventStream(VM.kIsolateStream, debugger.onEvent);
+ _debugSubscriptionFuture =
+ app.vm.listenEventStream(VM.kDebugStream, debugger.onEvent);
+ }
+
+ @override
+ void detached() {
+ cancelFutureSubscription(_isolateSubscriptionFuture);
+ _isolateSubscriptionFuture = null;
+ cancelFutureSubscription(_debugSubscriptionFuture);
+ _debugSubscriptionFuture = null;
+ super.detached();
}
}
« no previous file with comments | « runtime/observatory/lib/src/app/page.dart ('k') | runtime/observatory/lib/src/elements/heap_profile.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698