Chromium Code Reviews

Unified Diff: lib/src/runner/browser/server.dart

Issue 1179193003: Fix a bug with Control+C and browsers. (Closed) Base URL: git@github.com:dart-lang/test@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/runner/browser/server.dart
diff --git a/lib/src/runner/browser/server.dart b/lib/src/runner/browser/server.dart
index e4b9d853c625d6b1061107fe6dec110654e04388..8c9bcf92ce0210222eaa26e2398d80ef314fcc98 100644
--- a/lib/src/runner/browser/server.dart
+++ b/lib/src/runner/browser/server.dart
@@ -431,7 +431,11 @@ void main() {
// TODO(nweiz): Gracefully handle the browser being killed before the
// tests complete.
- browser.onExit.catchError((error, stackTrace) {
+ browser.onExit.then((_) {
+ if (completer.isCompleted) return;
+ if (!_closed) return;
+ completer.complete(null);
+ }).catchError((error, stackTrace) {
if (completer.isCompleted) return;
completer.completeError(error, stackTrace);
});
@@ -463,10 +467,7 @@ void main() {
/// resources have been fully released.
Future close() {
return _closeThunk.run(() async {
- var futures = _browserManagers.keys.map((platform) async {
- await _browserManagers[platform];
- await _browsers[platform].close();
- }).toList();
+ var futures = _browsers.values.map((browser) => browser.close()).toList();
futures.add(_server.close());
futures.add(_compilers.close());
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine