sig
type group
exception Abort of (Unixqueue.group * exn)
type wait_id
type operation =
Wait_in of Unix.file_descr
| Wait_out of Unix.file_descr
| Wait_oob of Unix.file_descr
| Wait of Unixqueue.wait_id
type event =
Input_arrived of (Unixqueue.group * Unix.file_descr)
| Output_readiness of (Unixqueue.group * Unix.file_descr)
| Out_of_band of (Unixqueue.group * Unix.file_descr)
| Timeout of (Unixqueue.group * Unixqueue.operation)
| Signal
| Extra of exn
class type event_system =
object
method add_abort_action :
Unixqueue.group -> (Unixqueue.group -> exn -> unit) -> unit
method add_close_action :
Unixqueue.group ->
Unix.file_descr * (Unix.file_descr -> unit) -> unit
method add_event : Unixqueue.event -> unit
method add_handler :
Unixqueue.group ->
(Unixqueue.event_system ->
Unixqueue.event Equeue.t -> Unixqueue.event -> unit) ->
unit
method add_resource :
Unixqueue.group -> Unixqueue.operation * float -> unit
method clear : Unixqueue.group -> unit
method debug_log : ?label:string -> string -> unit
method exists_resource : Unixqueue.operation -> bool
method exn_log :
?suppressed:bool ->
?to_string:(exn -> string) -> ?label:string -> exn -> unit
method is_running : bool
method new_group : unit -> Unixqueue.group
method new_wait_id : unit -> Unixqueue.wait_id
method once : Unixqueue.group -> float -> (unit -> unit) -> unit
method private queue_events :
Unix.file_descr list * Unix.file_descr list * Unix.file_descr list ->
bool
method remove_resource : Unixqueue.group -> Unixqueue.operation -> unit
method run : unit -> unit
method private setup :
unit ->
Unix.file_descr list * Unix.file_descr list * Unix.file_descr list *
float
method private source : Unixqueue.event Equeue.t -> unit
end
class unix_event_system : unit -> event_system
val create_unix_event_system : unit -> Unixqueue.event_system
val new_group : Unixqueue.event_system -> Unixqueue.group
val new_wait_id : Unixqueue.event_system -> Unixqueue.wait_id
val exists_resource : Unixqueue.event_system -> Unixqueue.operation -> bool
val add_resource :
Unixqueue.event_system ->
Unixqueue.group -> Unixqueue.operation * float -> unit
val add_close_action :
Unixqueue.event_system ->
Unixqueue.group -> Unix.file_descr * (Unix.file_descr -> unit) -> unit
val add_abort_action :
Unixqueue.event_system ->
Unixqueue.group -> (Unixqueue.group -> exn -> unit) -> unit
val remove_resource :
Unixqueue.event_system -> Unixqueue.group -> Unixqueue.operation -> unit
val add_handler :
Unixqueue.event_system ->
Unixqueue.group ->
(Unixqueue.event_system ->
Unixqueue.event Equeue.t -> Unixqueue.event -> unit) ->
unit
val add_event : Unixqueue.event_system -> Unixqueue.event -> unit
val clear : Unixqueue.event_system -> Unixqueue.group -> unit
val run : Unixqueue.event_system -> unit
val is_running : Unixqueue.event_system -> bool
val once :
Unixqueue.event_system ->
Unixqueue.group -> float -> (unit -> unit) -> unit
val exn_log :
Unixqueue.event_system ->
?suppressed:bool ->
?to_string:(exn -> string) -> ?label:string -> exn -> unit
val debug_log : Unixqueue.event_system -> ?label:string -> string -> unit
val set_debug_mode : bool -> unit
val init_mt : (unit -> (unit -> unit) * (unit -> unit)) -> unit
end