Index: mojo/public/dart/src/handle.dart |
diff --git a/mojo/public/dart/src/handle.dart b/mojo/public/dart/src/handle.dart |
index 79acbd70c1e49f4c595877cf10d29fdb2e63dd46..56b673548615fd854e93f6bfa6644e8f00fa0039 100644 |
--- a/mojo/public/dart/src/handle.dart |
+++ b/mojo/public/dart/src/handle.dart |
@@ -7,10 +7,10 @@ part of core; |
class _MojoHandleNatives { |
static int register(MojoHandle handle) native "MojoHandle_Register"; |
static int close(int handle) native "MojoHandle_Close"; |
- static int wait(int handle, int signals, int deadline) |
+ static List wait(int handle, int signals, int deadline) |
native "MojoHandle_Wait"; |
- static int waitMany( |
- List<int> handles, List<int> signals, int num_handles, int deadline) |
+ static List waitMany( |
+ List<int> handles, List<int> signals, int deadline) |
native "MojoHandle_WaitMany"; |
} |
@@ -29,14 +29,14 @@ class RawMojoHandle { |
return new MojoResult(result); |
} |
- MojoResult wait(int signals, int deadline) { |
- int result = _MojoHandleNatives.wait(h, signals, deadline); |
- return new MojoResult(result); |
+ MojoWaitResult wait(int signals, int deadline) { |
+ List result = _MojoHandleNatives.wait(h, signals, deadline); |
+ return new MojoWaitResult(new MojoResult(result[0]), result[1]); |
} |
bool _ready(int signal) { |
- MojoResult res = wait(signal, 0); |
- switch (res) { |
+ MojoWaitResult res = wait(signal, 0); |
+ switch (res.result) { |
case MojoResult.OK: |
return true; |
case MojoResult.DEADLINE_EXCEEDED: |
@@ -53,14 +53,14 @@ class RawMojoHandle { |
bool readyRead() => _ready(MojoHandleSignals.READABLE); |
bool readyWrite() => _ready(MojoHandleSignals.WRITABLE); |
- static int waitMany(List<int> handles, |
- List<int> signals, |
- int deadline) { |
- if (handles.length != signals.length) { |
- return MojoResult.kInvalidArgument; |
- } |
- return _MojoHandleNatives.waitMany( |
- handles, signals, handles.length, deadline); |
+ static MojoWaitManyResult waitMany(List<int> handles, |
+ List<int> signals, |
+ int deadline) { |
+ List result = _MojoHandleNatives.waitMany( |
+ handles, signals, deadline); |
+ |
+ return new MojoWaitManyResult( |
+ new MojoResult(result[0]), result[1], result[2]); |
} |
static MojoResult register(MojoHandle handle) { |