Module Unix_utils

EINTR-safe wrappers around Unix I/O calls. Each function retries automatically when interrupted by a signal.

val poll : Unix.file_descr list -> Unix.file_descr list -> Unix.file_descr list -> float -> Unix.file_descr list * Unix.file_descr list * Unix.file_descr list
val select : Unix.file_descr list -> Unix.file_descr list -> Unix.file_descr list -> float -> Unix.file_descr list * Unix.file_descr list * Unix.file_descr list
val read : Unix.file_descr -> bytes -> int -> int -> int
val write : Unix.file_descr -> bytes -> int -> int -> int
val accept : ?cloexec:bool -> Unix.file_descr -> Unix.file_descr * Unix.sockaddr
val connect : Unix.file_descr -> Unix.sockaddr -> unit
val recv : Unix.file_descr -> bytes -> int -> int -> Unix.msg_flag list -> int
val recvfrom : Unix.file_descr -> bytes -> int -> int -> Unix.msg_flag list -> int * Unix.sockaddr
val send : Unix.file_descr -> bytes -> int -> int -> Unix.msg_flag list -> int
val sendto : Unix.file_descr -> bytes -> int -> int -> Unix.msg_flag list -> Unix.sockaddr -> int
val mkdir : string -> Unix.file_perm -> unit
val socketpair : ?cloexec:bool -> unit -> Unix.file_descr * Unix.file_descr

Create a pair of connected stream sockets, usable as a non-blocking wake-up channel with Unix.select on all platforms. Falls back to a loopback TCP pair on Windows systems without AF_UNIX support (pre-1803, Wine).