| Index: third_party/mojo/src/mojo/public/c/system/message_pipe.h
|
| diff --git a/third_party/mojo/src/mojo/public/c/system/message_pipe.h b/third_party/mojo/src/mojo/public/c/system/message_pipe.h
|
| index 97d88874da76ebf0ddf4d3198f632ecc31c4af3e..d42c3fc65df49c9a41213f2d504f60b1ecbca46e 100644
|
| --- a/third_party/mojo/src/mojo/public/c/system/message_pipe.h
|
| +++ b/third_party/mojo/src/mojo/public/c/system/message_pipe.h
|
| @@ -90,8 +90,6 @@ extern "C" {
|
| // |*options| is invalid).
|
| // |MOJO_RESULT_RESOURCE_EXHAUSTED| if a process/system/quota/etc. limit has
|
| // been reached.
|
| -//
|
| -// TODO(vtl): Add an options struct pointer argument.
|
| MOJO_SYSTEM_EXPORT MojoResult MojoCreateMessagePipe(
|
| const struct MojoCreateMessagePipeOptions* options, // Optional.
|
| MojoHandle* message_pipe_handle0, // Out.
|
| @@ -118,7 +116,7 @@ MOJO_SYSTEM_EXPORT MojoResult MojoCreateMessagePipe(
|
| // latter case).
|
| // |MOJO_RESULT_FAILED_PRECONDITION| if the other endpoint has been closed.
|
| // Note that closing an endpoint is not necessarily synchronous (e.g.,
|
| -// across processes), so this function may be succeed even if the other
|
| +// across processes), so this function may succeed even if the other
|
| // endpoint has been closed (in which case the message would be dropped).
|
| // |MOJO_RESULT_UNIMPLEMENTED| if an unsupported flag was set in |*options|.
|
| // |MOJO_RESULT_BUSY| if some handle to be sent is currently in use.
|
| @@ -133,37 +131,37 @@ MOJO_SYSTEM_EXPORT MojoResult
|
| uint32_t num_handles,
|
| MojoWriteMessageFlags flags);
|
|
|
| -// Reads a message from the message pipe endpoint given by
|
| -// |message_pipe_handle|; also usable to query the size of the next message or
|
| -// discard the next message. |bytes|/|*num_bytes| indicate the buffer/buffer
|
| -// size to receive the message data (if any) and |handles|/|*num_handles|
|
| -// indicate the buffer/maximum handle count to receive the attached handles (if
|
| -// any).
|
| -//
|
| -// |num_bytes| and |num_handles| are optional "in-out" parameters. If non-null,
|
| -// on return |*num_bytes| and |*num_handles| will usually indicate the number
|
| -// of bytes and number of attached handles in the "next" message, respectively,
|
| -// whether that message was read or not. (If null, the number of bytes/handles
|
| -// is treated as zero.)
|
| +// Reads the next message from a message pipe, or indicates the size of the
|
| +// message if it cannot fit in the provided buffers. The message will be read
|
| +// in its entirety or not at all; if it is not, it will remain enqueued unless
|
| +// the |MOJO_READ_MESSAGE_FLAG_MAY_DISCARD| flag was passed. At most one
|
| +// message will be consumed from the queue, and the return value will indicate
|
| +// whether a message was successfully read.
|
| //
|
| -// If |bytes| is null, then |*num_bytes| must be zero, and similarly for
|
| -// |handles| and |*num_handles|.
|
| +// |num_bytes| and |num_handles| are optional in/out parameters that on input
|
| +// must be set to the sizes of the |bytes| and |handles| arrays, and on output
|
| +// will be set to the actual number of bytes or handles contained in the
|
| +// message (even if the message was not retrieved due to being too large).
|
| +// Either |num_bytes| or |num_handles| may be null if the message is not
|
| +// expected to contain the corresponding type of data, but such a call would
|
| +// fail with |MOJO_RESULT_RESOURCE_EXHAUSTED| if the message in fact did
|
| +// contain that type of data.
|
| //
|
| -// Partial reads are NEVER done. Either a full read is done and |MOJO_RESULT_OK|
|
| -// returned, or the read is NOT done and |MOJO_RESULT_RESOURCE_EXHAUSTED| is
|
| -// returned (if |MOJO_READ_MESSAGE_FLAG_MAY_DISCARD| was set, the message is
|
| -// also discarded in this case).
|
| +// |bytes| and |handles| will receive the contents of the message, if it is
|
| +// retrieved. Either or both may be null, in which case the corresponding size
|
| +// parameter(s) must also be set to zero or passed as null.
|
| //
|
| // Returns:
|
| // |MOJO_RESULT_OK| on success (i.e., a message was actually read).
|
| // |MOJO_RESULT_INVALID_ARGUMENT| if some argument was invalid.
|
| // |MOJO_RESULT_FAILED_PRECONDITION| if the other endpoint has been closed.
|
| -// |MOJO_RESULT_RESOURCE_EXHAUSTED| if one of the buffers to receive the
|
| -// message/attached handles (|bytes|/|*num_bytes| or
|
| -// |handles|/|*num_handles|) was too small. (TODO(vtl): Reconsider this
|
| -// error code; should distinguish this from the hitting-system-limits
|
| -// case.)
|
| +// |MOJO_RESULT_RESOURCE_EXHAUSTED| if the message was too large to fit in the
|
| +// provided buffer(s). The message will have been left in the queue or
|
| +// discarded, depending on flags.
|
| // |MOJO_RESULT_SHOULD_WAIT| if no message was available to be read.
|
| +//
|
| +// TODO(vtl): Reconsider the |MOJO_RESULT_RESOURCE_EXHAUSTED| error code; should
|
| +// distinguish this from the hitting-system-limits case.
|
| MOJO_SYSTEM_EXPORT MojoResult
|
| MojoReadMessage(MojoHandle message_pipe_handle,
|
| void* bytes, // Optional out.
|
|
|