Index: mojo/public/python/mojo/bindings/messaging.py |
diff --git a/mojo/public/python/mojo/bindings/messaging.py b/mojo/public/python/mojo/bindings/messaging.py |
index fb1263ef55a912c0665bcf99df5e669dde3af861..f9061fb856bd279a2d91d1563bc03632a38b30cb 100644 |
--- a/mojo/public/python/mojo/bindings/messaging.py |
+++ b/mojo/public/python/mojo/bindings/messaging.py |
@@ -247,6 +247,14 @@ class Connector(MessageReceiver): |
self._cancellable = None |
self._handle.Close() |
+ def PassMessagePipe(self): |
+ if self._cancellable: |
+ self._cancellable() |
+ self._cancellable = None |
+ result = self._handle |
+ self._handle = system.Handle() |
+ return result |
+ |
def _OnAsyncWaiterResult(self, result): |
self._cancellable = None |
if result == system.RESULT_OK: |
@@ -319,7 +327,7 @@ class Router(MessageReceiverWithResponder): |
# The message must have a header. |
header = message.header |
assert header.expects_response |
- request_id = self.NextRequestId() |
+ request_id = self._NextRequestId() |
header.request_id = request_id |
if not self._connector.Accept(message): |
return False |
@@ -329,6 +337,9 @@ class Router(MessageReceiverWithResponder): |
def Close(self): |
self._connector.Close() |
+ def PassMessagePipe(self): |
+ return self._connector.PassMessagePipe() |
+ |
def _HandleIncomingMessage(self, message): |
header = message.header |
if header.expects_response: |
@@ -350,7 +361,7 @@ class Router(MessageReceiverWithResponder): |
# Ok to drop the message |
return False |
- def NextRequestId(self): |
+ def _NextRequestId(self): |
request_id = self._next_request_id |
while request_id == 0 or request_id in self._responders: |
request_id = (request_id + 1) % (1 << 64) |