module Lwt_engine : sig..end
Lwt unix main loop engine
Type of events. An event represent a callback registered to be called when some event occurs.
val stop_event : event -> unit
stop_event event stops the given event.
val fake_event : event
Event which does nothing when stopped.
Event loop functions ¶
val iter : bool -> unit
iter block performs one iteration of the main loop. If block is true the function must block until one event becomes available, otherwise it should just check for available events and return immediately.
on_readable fd f calls f each time fd becomes readable.
on_readable fd f calls f each time fd becomes writable.
on_timer delay repeat f calls f one time after delay seconds. If repeat is true then f is called each delay seconds, otherwise it is called only one time.
val readable_count : unit -> int
Returns the number of events waiting for a file descriptor to become readable.
val writable_count : unit -> int
Returns the number of events waiting for a file descriptor to become writable.
val timer_count : unit -> int
Returns the number of registered timers.
val fake_io : Unix.file_descr -> unit
Simulates activity on the given file descriptor.
val fork : unit -> unit
Called internally by Lwt_unix.fork to make sure we don't get strange behaviour
An engine represents a set of functions used to register different kinds of callbacks for different kinds of events.
Abstract class for engines.
Type of engines.
Predefined engines ¶
module Ev_backend : sig..end
Type of libev loops.
class libev : ?backend:Ev_backend.t -> unit -> object..end
Engine based on libev.
Engine based on Unix.select.
class virtual select_based : object..end
Abstract class for engines based on a select-like function.
class virtual poll_based : object..end
Abstract class for engines based on a poll-like function.
The current engine ¶
val get : unit -> t
get () returns the engine currently in use.
val set : ?transfer:bool -> ?destroy:bool -> #t -> unit
set ?transfer ?destroy engine replaces the current engine by the given one.
If transfer is true (the default) all events from the current engine are transferred to the new one.
If destroy is true (the default) then the current engine is destroyed before being replaced.