Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/lib/isolate_patch.dart |
| diff --git a/sdk/lib/_internal/compiler/implementation/lib/isolate_patch.dart b/sdk/lib/_internal/compiler/implementation/lib/isolate_patch.dart |
| index 410d032422039e7bea935859f541363c18f16c98..ffa3d20134667812dbd41586350eac21b65e0169 100644 |
| --- a/sdk/lib/_internal/compiler/implementation/lib/isolate_patch.dart |
| +++ b/sdk/lib/_internal/compiler/implementation/lib/isolate_patch.dart |
| @@ -6,7 +6,9 @@ |
| import 'dart:_isolate_helper' show IsolateNatives, |
| lazyPort, |
| - ReceivePortImpl; |
| + ReceivePortImpl, |
| + CloseToken, |
| + JsIsolateSink; |
| patch class _Isolate { |
| patch static ReceivePort get port { |
| @@ -31,9 +33,34 @@ patch class _Isolate { |
| } |
| } |
| +patch bool _isCloseToken(var object) { |
| + // TODO(floitsch): can we compare against const CloseToken()? |
|
Lasse Reichstein Nielsen
2013/03/19 12:01:55
If you can, at it seems you can, please do.
floitsch
2013/03/19 13:18:59
Done.
|
| + return object is CloseToken; |
| +} |
| + |
| /** Default factory for receive ports. */ |
| patch class ReceivePort { |
| patch factory ReceivePort() { |
| return new ReceivePortImpl(); |
| } |
| } |
| + |
| +patch class MessageBox { |
| + patch MessageBox.oneShot() : this._oneShot(new ReceivePort()); |
| + MessageBox._oneShot(ReceivePort receivePort) |
| + : stream = new IsolateStream._fromOriginalReceivePortOneShot(receivePort), |
| + sink = new JsIsolateSink.fromPort(receivePort.toSendPort()); |
| + |
| + patch MessageBox() : this._(new ReceivePort()); |
| + MessageBox._(ReceivePort receivePort) |
| + : stream = new IsolateStream._fromOriginalReceivePort(receivePort), |
| + sink = new JsIsolateSink.fromPort(receivePort.toSendPort()); |
| +} |
| + |
| +patch IsolateSink streamSpawnFunction( |
| + void topLevelFunction(), |
| + [bool unhandledExceptionCallback(IsolateUnhandledException e)]) { |
| + SendPort sendPort = spawnFunction(topLevelFunction, |
| + unhandledExceptionCallback); |
| + return new JsIsolateSink.fromPort(sendPort); |
| +} |