An interruptor provides a file descriptor that can be used to cause a file-descr-watcher to detect the file descriptor is ready for reading. We use an interruptor when a thread needs the Async scheduler to service a request.
include sig ... end
val sexp_of_t : t ‑> Sexplib.Sexp.t
val create : create_fd:(Async_unix__.Raw_fd.Kind.t ‑> Core.Unix.File_descr.t ‑> Core.Info.t ‑> Async_unix__.Raw_fd.t) ‑> t
val read_fd : t ‑> Async_unix__.Raw_fd.t
val thread_safe_interrupt : t ‑> unit
thread_safe_interrupt t
causes read_fd t
to become ready for reading.
val clear : t ‑> unit
clear t
causes read_fd t
to become not ready for reading. It is guaranteed that
any calls to thread_safe_interrupt
after clear t
returns (and prior to another
call to clear t
) will cause read_fd
to become ready for reading.