(* $Id: netsys_pollset_posix.mli 1696 2012-02-08 19:27:53Z gerd $ *)
(** Pollsets for POSIX operating systems *)
open Netsys_pollset
val poll_based_pollset : unit -> pollset
(** Returns a poll set whose implementation is based on the [poll] system
call.
Win32: On Win32 this implementation works, but only for sockets,
and is not cancellable in multi-threaded programs. (This is a
restriction because we have to map it to the [select] call of the
WinSock layer.)
*)
val reset : unit -> unit
(** This module may keep some global state. This function resets this
state. As the state may contain file descriptors, it is advisable
to reset after calling [fork] to free these descriptors.
*)
val accelerated_pollset : unit -> pollset
(** Returns a pollset using a "fast" poll mechanism, if available.
Otherwise this is the same as [poll_based_pollset].
Fast poll mechanisms are:
- [epoll] on Linux
Generally, these mechanisms are not 100% compatible with the
standard [poll]. In particular, the poll events may be slightly
differently interpreted. Also, there are many, many reports about
buggy implementations in the OS.
*)
(* TODO: pollsets for kqueue, /dev/poll etc. *)