# Module Linux_ext.Timerfd

    module Timerfd: sig .. end

    module Clock: sig .. end

Clock used to mark the progress of a timer.

    module Flags: sig .. end

    type t = private Core_unix.File_descr.t

    val to_file_descr : t -> Core_unix.File_descr.t

    val create : (?flags:Flags.t ->
            Clock.t -> t)
           Core_kernel.Std.Or_error.t

`create ?flags clock` creates a new timer file descriptor. With Linux 2.6.26 or earlier `flags` must be empty.

    val set_at : t -> Core_kernel.Std.Time_ns.t -> unit

`set_at t at` and `set_after t span` set `t` to fire once, at `at` or after `span`. `set_after` treats `span <= 0` as `span = 1ns`; unlike the underlying system call, `timerfd_settime`, it does not clear the timer if `span = 0`. To clear a timerfd, use `Timerfd.clear`.

`set_repeating ?after t interval` sets `t` to fire every `interval` starting after `after` (default is `interval`), raising if `interval <= 0`.

    val set_after : t -> Core_kernel.Std.Time_ns.Span.t -> unit

    val set_repeating : ?after:Core_kernel.Std.Time_ns.Span.t ->
           t -> Core_kernel.Std.Time_ns.Span.t -> unit

    val clear : t -> unit

`clear t` causes `t` to not fire any more.

    type repeat = {

`` | `fire_after : `Core_kernel.Std.Time_ns.Span.t`;`
`` | `interval : `Core_kernel.Std.Time_ns.Span.t`;`

}

    val get : t ->
           [ `Fire_after of Core_kernel.Std.Time_ns.Span.t
           | `Not_armed
           | `Repeat of repeat ]

`get t` returns the current state of the timer `t`.

    val t_of_sexp : Sexplib.Sexp.t -> t

    val sexp_of_t : t -> Sexplib.Sexp.t

    val compare : t -> t -> int

    val bin_t : t Core_kernel.Std.Bin_prot.Type_class.t

    val bin_read_t : t Core_kernel.Std.Bin_prot.Read.reader

    val __bin_read_t__ : (int -> t) Core_kernel.Std.Bin_prot.Read.reader

    val bin_reader_t : t Core_kernel.Std.Bin_prot.Type_class.reader

    val bin_size_t : t Core_kernel.Std.Bin_prot.Size.sizer

    val bin_write_t : t Core_kernel.Std.Bin_prot.Write.writer

    val bin_writer_t : t Core_kernel.Std.Bin_prot.Type_class.writer

`create ?flags clock` creates a new timer file descriptor. With Linux 2.6.26 or earlier `flags` must be empty.
`set_at t at` and `set_after t span` set `t` to fire once, at `at` or after `span`. `set_after` treats `span <= 0` as `span = 1ns`; unlike the underlying system call, `timerfd_settime`, it does not clear the timer if `span = 0`. To clear a timerfd, use `Timerfd.clear`.

`set_repeating ?after t interval` sets `t` to fire every `interval` starting after `after` (default is `interval`), raising if `interval <= 0`.
`clear t` causes `t` to not fire any more.
`get t` returns the current state of the timer `t`.