A typical receive loop implicitly calls Iobuf.flip_lo before calling its callback to
prepare a packet buffer for reading by the callback and Iobuf.reset afterward to
prepare for the next iteration.
It's often convenient to use the same interface for UDP, TCP, and file variants of the same protocol.
stop terminates a typical loop as soon as possible, when it becomes determined.
max_ready limits the number of receive loop iterations within an Fd.every_ready_to
iteration, to prevent starvation of other Async jobs and to allow bounded
busy-waiting, as on busy network sockets.
type t = {capacity : int; |
init : write_buffer; |
stop : unit Async_extra__.Import.Deferred.t; |
max_ready : int; |
}include sig ... endval max_ready : t ‑> intval stop : t ‑> unit Async_extra__.Import.Deferred.tval init : t ‑> write_bufferval capacity : t ‑> intmodule Fields : sig ... endval create : ?capacity:int ‑> ?init:write_buffer ‑> ?stop:unit Async_extra__.Import.Deferred.t ‑> ?max_ready:int ‑> unit ‑> t