package async_udp

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

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 = {
  1. capacity : int;
  2. init : write_buffer;
  3. stop : unit Async.Deferred.t;
  4. max_ready : int;
}
val max_ready : t -> int
val stop : t -> unit Async.Deferred.t
val init : t -> write_buffer
val capacity : t -> int
module Fields : sig ... end
val create : ?capacity:int -> ?init:write_buffer -> ?stop:unit Async.Deferred.t -> ?max_ready:int -> unit -> t