Chromium Code Reviews| Index: samples/sample_extension/sample_asynchronous_extension.dart |
| diff --git a/samples/sample_extension/sample_asynchronous_extension.dart b/samples/sample_extension/sample_asynchronous_extension.dart |
| index 3459b440aa997ca6642a1b52f021ae6e5da04402..389703f8ced8b2758cfe55979e3f2f9573b93d57 100644 |
| --- a/samples/sample_extension/sample_asynchronous_extension.dart |
| +++ b/samples/sample_extension/sample_asynchronous_extension.dart |
| @@ -13,16 +13,22 @@ class RandomArray { |
| static SendPort _port; |
| Future<List<int> > randomArray(int seed, int length) { |
| - var args = new List(2); |
| + var completer = new Completer(); |
| + var replyPort = new ReceivePort(); |
|
floitsch
2013/10/25 18:04:58
This will need to be merged to new RawReceivePort(
Søren Gjesse
2013/10/29 07:42:57
Done.
|
| + var args = new List(3); |
| args[0] = seed; |
| args[1] = length; |
| - return _servicePort.call(args).then((result) { |
| + args[2] = replyPort.toSendPort(); |
| + _servicePort.send(args); |
| + replyPort.receive((result, _) { |
| + replyPort.close(); |
| if (result != null) { |
| - return result; |
| + completer.complete(result); |
| } else { |
| - throw new Exception("Random array creation failed"); |
| + completer.completeError(new Exception("Random array creation failed")); |
| } |
| }); |
| + return completer.future; |
| } |
| SendPort get _servicePort { |