Becomes determined when it is no longer possible to send message using this writer, for instance when the writer is closed or the consumer leaves.
The result of this function is cached by Rpc.Transport
flushed t
returns a deferred that must become determined when all prior sent
messages are delivered.
It must be OK to call flushed t
after t
has been closed.
ready_to_write t
becomes determined when it is a good time to send messages
again. Async RPC calls this function after sending a batch of messages, to avoid
flooding the transport.
Using let ready_to_write = flushed
is an acceptable implementation.
All the following functions send exactly one message.
They must raise once the writer is closed.
Same as send_bin_prot_and_bigstring
but the bigstring can't be modified until the
returned deferred becomes determined. This can be used to avoid copying the
bigstring.
can_send t = not (is_closed t || Deferred.is_determined (stopped t))
This function is similar to Async_unix.Writer.transfer
, except that it doesn't
wait on Pipe.upstream_flushed
when the writer is closed.