| Index: third_party/mojo/src/mojo/public/python/mojo_bindings/messaging.py
|
| diff --git a/third_party/mojo/src/mojo/public/python/mojo_bindings/messaging.py b/third_party/mojo/src/mojo/public/python/mojo_bindings/messaging.py
|
| index ebdf1ee3207167b64b4beb5ce82cbf83b2350230..c2742cc2a0e91afa9e8ad2a374a6dc121aa1bd9c 100644
|
| --- a/third_party/mojo/src/mojo/public/python/mojo_bindings/messaging.py
|
| +++ b/third_party/mojo/src/mojo/public/python/mojo_bindings/messaging.py
|
| @@ -30,13 +30,13 @@ class MessagingException(Exception):
|
| class MessageHeader(object):
|
| """The header of a mojo message."""
|
|
|
| - _SIMPLE_MESSAGE_VERSION = 2
|
| + _SIMPLE_MESSAGE_VERSION = 0
|
| _SIMPLE_MESSAGE_STRUCT = struct.Struct("<IIII")
|
|
|
| _REQUEST_ID_STRUCT = struct.Struct("<Q")
|
| _REQUEST_ID_OFFSET = _SIMPLE_MESSAGE_STRUCT.size
|
|
|
| - _MESSAGE_WITH_REQUEST_ID_VERSION = 3
|
| + _MESSAGE_WITH_REQUEST_ID_VERSION = 1
|
| _MESSAGE_WITH_REQUEST_ID_SIZE = (
|
| _SIMPLE_MESSAGE_STRUCT.size + _REQUEST_ID_STRUCT.size)
|
|
|
| @@ -276,10 +276,11 @@ class Connector(MessageReceiver):
|
| _WeakCallback(self._OnAsyncWaiterResult))
|
|
|
| def _ReadOutstandingMessages(self):
|
| - result = system.RESULT_OK
|
| - while result == system.RESULT_OK:
|
| - result = _ReadAndDispatchMessage(self._handle,
|
| - self._incoming_message_receiver)
|
| + result = None
|
| + dispatched = True
|
| + while dispatched:
|
| + result, dispatched = _ReadAndDispatchMessage(
|
| + self._handle, self._incoming_message_receiver)
|
| if result == system.RESULT_SHOULD_WAIT:
|
| self._RegisterAsyncWaiterForRead()
|
| return
|
| @@ -393,15 +394,16 @@ def _WeakCallback(callback):
|
|
|
|
|
| def _ReadAndDispatchMessage(handle, message_receiver):
|
| + dispatched = False
|
| (result, _, sizes) = handle.ReadMessage()
|
| if result == system.RESULT_OK and message_receiver:
|
| - message_receiver.Accept(Message(bytearray(), []))
|
| + dispatched = message_receiver.Accept(Message(bytearray(), []))
|
| if result != system.RESULT_RESOURCE_EXHAUSTED:
|
| - return result
|
| + return (result, dispatched)
|
| (result, data, _) = handle.ReadMessage(bytearray(sizes[0]), sizes[1])
|
| if result == system.RESULT_OK and message_receiver:
|
| - message_receiver.Accept(Message(data[0], data[1]))
|
| - return result
|
| + dispatched = message_receiver.Accept(Message(data[0], data[1]))
|
| + return (result, dispatched)
|
|
|
| def _HasRequestId(flags):
|
| return flags & (MESSAGE_EXPECTS_RESPONSE_FLAG|MESSAGE_IS_RESPONSE_FLAG) != 0
|
|
|