| Index: pkg/fletchc/lib/src/zone_helper.dart
|
| diff --git a/pkg/fletchc/lib/src/zone_helper.dart b/pkg/fletchc/lib/src/zone_helper.dart
|
| deleted file mode 100644
|
| index 2d37ccfe5a33c672a2b2fbd724e8e184dcbd0b6e..0000000000000000000000000000000000000000
|
| --- a/pkg/fletchc/lib/src/zone_helper.dart
|
| +++ /dev/null
|
| @@ -1,78 +0,0 @@
|
| -// Copyright (c) 2015, the Dartino project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE.md file.
|
| -
|
| -/// Helper functions for running code in a Zone.
|
| -library fletchc.zone_helper;
|
| -
|
| -import 'dart:async';
|
| -
|
| -import 'dart:isolate';
|
| -
|
| -Future runGuarded(
|
| - Future f(),
|
| - {void printLineOnStdout(line),
|
| - void handleLateError(error, StackTrace stackTrace)}) {
|
| -
|
| - var printWrapper;
|
| - if (printLineOnStdout != null) {
|
| - printWrapper = (_1, _2, _3, String line) {
|
| - printLineOnStdout(line);
|
| - };
|
| - }
|
| -
|
| - Completer completer = new Completer();
|
| -
|
| - handleUncaughtError(error, StackTrace stackTrace) {
|
| - if (!completer.isCompleted) {
|
| - completer.completeError(error, stackTrace);
|
| - } else if (handleLateError != null) {
|
| - handleLateError(error, stackTrace);
|
| - } else {
|
| - // Delegate to parent.
|
| - throw error;
|
| - }
|
| - }
|
| -
|
| - ZoneSpecification specification = new ZoneSpecification(print: printWrapper);
|
| -
|
| - ReceivePort errorPort = new ReceivePort();
|
| - Future errorFuture = errorPort.listen((List errors) {
|
| - Isolate.current.removeErrorListener(errorPort.sendPort);
|
| - errorPort.close();
|
| - var error = errors[0];
|
| - var stackTrace = errors[1];
|
| - if (stackTrace != null) {
|
| - stackTrace = new StackTrace.fromString(stackTrace);
|
| - }
|
| - handleUncaughtError(error, stackTrace);
|
| - }).asFuture();
|
| -
|
| - Isolate.current.addErrorListener(errorPort.sendPort);
|
| - Isolate.current.setErrorsFatal(false);
|
| - return acknowledgeControlMessages(Isolate.current).then((_) {
|
| - runZoned(
|
| - () => new Future(f).then(completer.complete),
|
| - zoneSpecification: specification,
|
| - onError: handleUncaughtError);
|
| -
|
| - return completer.future.whenComplete(() {
|
| - errorPort.close();
|
| - Isolate.current.removeErrorListener(errorPort.sendPort);
|
| - return errorFuture;
|
| - });
|
| - });
|
| -}
|
| -
|
| -/// Ping [isolate] to ensure control messages have been delivered. Control
|
| -/// messages are things like [Isolate.addErrorListener] and
|
| -/// [Isolate.addOnExitListener].
|
| -Future acknowledgeControlMessages(Isolate isolate, {Capability resume}) {
|
| - ReceivePort ping = new ReceivePort();
|
| - Isolate.current.ping(ping.sendPort);
|
| - if (resume == null) {
|
| - return ping.first;
|
| - } else {
|
| - return ping.first.then((_) => isolate.resume(resume));
|
| - }
|
| -}
|
|
|