Index: lib/isolate/frog/ports.dart |
diff --git a/lib/isolate/frog/ports.dart b/lib/isolate/frog/ports.dart |
index 21f58239180af3bea2403e6a3a419a58eccfc544..12d5b0369aa09a4951089f29fe284105a989a64b 100644 |
--- a/lib/isolate/frog/ports.dart |
+++ b/lib/isolate/frog/ports.dart |
@@ -9,12 +9,6 @@ class _BaseSendPort implements SendPort { |
_BaseSendPort(this._isolateId); |
- _ReceivePortSingleShotImpl call(var message) { |
- final result = new _ReceivePortSingleShotImpl(); |
- this.send(message, result.toSendPort()); |
- return result; |
- } |
- |
static void checkReplyTo(SendPort replyTo) { |
if (replyTo !== null |
&& replyTo is! _NativeJsSendPort |
@@ -24,20 +18,20 @@ class _BaseSendPort implements SendPort { |
} |
} |
- // TODO(sigmund): replace the current SendPort.call with the following: |
- //Future call(var message) { |
- // final completer = new Completer(); |
- // final port = new _ReceivePort.singleShot(); |
- // send(message, port.toSendPort()); |
- // port.receive((value, ignoreReplyTo) { |
- // if (value is Exception) { |
- // completer.completeException(value); |
- // } else { |
- // completer.complete(value); |
- // } |
- // }); |
- // return completer.future; |
- //} |
+ Future call(var message) { |
+ final completer = new Completer(); |
+ final port = new _ReceivePortImpl(); |
+ send(message, port.toSendPort()); |
+ port.receive((value, ignoreReplyTo) { |
+ port.close(); |
+ if (value is Exception) { |
+ completer.completeException(value); |
+ } else { |
+ completer.complete(value); |
+ } |
+ }); |
+ return completer.future; |
+ } |
abstract void send(var message, [SendPort replyTo]); |
abstract bool operator ==(var other); |
@@ -187,9 +181,6 @@ class _ReceivePortFactory { |
return new _ReceivePortImpl(); |
} |
- factory ReceivePort.singleShot() { |
- return new _ReceivePortSingleShotImpl(); |
- } |
} |
/** Implementation of a multi-use [ReceivePort] on top of JavaScript. */ |
@@ -217,27 +208,6 @@ class _ReceivePortImpl implements ReceivePort { |
} |
} |
-/** Implementation of a single-shot [ReceivePort]. */ |
-class _ReceivePortSingleShotImpl implements ReceivePort { |
- |
- _ReceivePortSingleShotImpl() : _port = new _ReceivePortImpl() { } |
- |
- void receive(void callback(var message, SendPort replyTo)) { |
- _port.receive((var message, SendPort replyTo) { |
- _port.close(); |
- callback(message, replyTo); |
- }); |
- } |
- |
- void close() { |
- _port.close(); |
- } |
- |
- SendPort toSendPort() => _port.toSendPort(); |
- |
- final _ReceivePortImpl _port; |
-} |
- |
/** Wait until all ports in a message are resolved. */ |
_waitForPendingPorts(var message, void callback()) { |
final finder = new _PendingSendPortFinder(); |
@@ -254,8 +224,6 @@ class _PendingSendPortFinder extends _MessageTraverser { |
visitPrimitive(x) {} |
visitNativeJsSendPort(_NativeJsSendPort port) {} |
visitWorkerSendPort(_WorkerSendPort port) {} |
- visitReceivePort(_ReceivePortImpl port) {} |
- visitReceivePortSingleShot(_ReceivePortSingleShotImpl port) {} |
visitList(List list) { |
final visited = _getInfo(list); |