# Class virtual Lwt_engine.abstract

    class virtual abstract : object .. end

Abstract class for engines.

    method destroy : unit

Destroy the engine, remove all its events and free its associated resources.

    method transfer : abstract -> unit

`transfer engine` moves all events from the current engine to `engine`. Note that timers are reset in the destination engine, i.e. if a timer with a delay of 2 seconds was registered 1 second ago it will occurs in 2 seconds in the destination engine.

###### Event loop methods

    method virtual iter : bool -> unit

    method on_readable : Unix.file_descr -> (event -> unit) -> event

    method on_writable : Unix.file_descr -> (event -> unit) -> event

    method on_timer : float -> bool -> (event -> unit) -> event

    method fake_io : Unix.file_descr -> unit

    method readable_count : int

    method writable_count : int

    method timer_count : int

###### Backend methods

## Notes:

- the callback passed to register methods is of type `unit -> unit` and not `event -> unit`
- register methods returns a lazy value which unregister the event when forced

    method private virtual cleanup : unit

Cleanup resources associated to the engine.

    method private virtual register_readable : Unix.file_descr -> (unit -> unit) -> unit Lazy.t

    method private virtual register_writable : Unix.file_descr -> (unit -> unit) -> unit Lazy.t

    method private virtual register_timer : float -> bool -> (unit -> unit) -> unit Lazy.t