Module Core__.Linux_ext.Eventfd

module Flags : sig ... end
type t = private Core__.Core_unix.File_descr.t
include sig ... end
val compare : t ‑> t ‑> int
val sexp_of_t : t ‑> Sexplib.Sexp.t
val create : (?⁠flags:Flags.t ‑> Core__.Import.Int32.t ‑> t) Core__.Import.Or_error.t

create ?flags init creates a new event file descriptor with init as the counter's initial value. With Linux 2.6.26 or earlier flags must be empty.

val read : t ‑> Core__.Import.Int64.t

read t will block until t's counter is non-zero, after which its behavior depends on whether t was created with the Flags.semaphore flag set. If it was set, then read t will return 1 and decrement t's counter. If it was not set, then read t will return the value of t's counter and set the counter to 0. The returned value should be interpreted as an unsigned 64-bit integer.

In the case that t was created with the Flags.nonblock flag set, this function will raise a Unix error with the error code EAGAIN or EWOULDBLOCK, instead of blocking.

val write : t ‑> Core__.Import.Int64.t ‑> unit

write t v will block until t's counter is less than the max value of a uint64_t, after which it will increment t's counter by v, which will be interpreted as an unsigned 64-bit integer.

In the case that t was created with the Flags.nonblock flag set, this function will raise a Unix error with the error code EAGAIN or EWOULDBLOCK, instead of blocking.

val to_file_descr : t ‑> Core__.Core_unix.File_descr.t