Picos_io_select.Intr
A mechanism to interrupt blocking Unix
IO operations.
⚠️ The mechanism uses a signal which should not be used for other purposes.
⚠️ Beware that signal handling in OCaml 5.0.0 is known to be broken and several fixes were included in OCaml 5.1.0.
val nothing : t
A constant for a no request. clr nothing
does nothing.
val req : seconds:float -> t
req ~seconds
requests an interrupt in the form of a signal delivered to the thread that made the request within the specified number of seconds
. Blocking Unix
IO calls typically raise an error with the Unix.EINTR
error code when they are interrupted by a signal. Regardless of whether the signal gets triggered or a system call gets interrupted, the request must be cleared exactly once!
⚠️ Due to limitations of the OCaml system modules and unlike with typical timeout mechanisms, the interrupt may also be triggered sooner.