package eio

  1. Overview
  2. Docs
Effect-based direct-style IO API for OCaml

Install

dune-project
 Dependency

Authors

Maintainers

Sources

eio-1.3.tbz
sha256=8ed5c13e6689f31c85dca5f12762d84b8cc0042a7b07d3e464df6eb4b72b3dfc
sha512=46e8f817f32c3316e7f35835a136ad177a295b3306351eb2efa2386482b0169a5b19ed2925b32da2a1f10d40f083fe3d588dd401908f9fec6e4a44cd68535204

doc/eio.utils/Eio_utils/Zzz/index.html

Module Eio_utils.ZzzSource

A set of timers.

Sourcemodule Key : sig ... end

A handle to a registered timer.

Sourcetype t

A set of timers (implemented as a priority queue).

Sourcetype item =
  1. | Fiber of unit Suspended.t
  2. | Fn of unit -> unit
Sourceval create : unit -> t

create () is a fresh empty queue.

Sourceval add : t -> Mtime.t -> item -> Key.t

add t time item adds a new event, due at time, and returns its ID.

If item is a Fiber, you must use Eio.Private.Fiber_context.set_cancel_fn on it before calling pop. Your cancel function should call remove (in addition to resuming it).

Sourceval remove : t -> Key.t -> unit

remove t key removes an event previously added with add.

Sourceval pop : t -> now:Mtime.t -> [ `Due of item | `Wait_until of Mtime.t | `Nothing ]

pop ~now t removes and returns the earliest item due by now. For fibers, it also clears the thread's cancel function. If no item is due yet, it returns the time the earliest item becomes due.

OCaml

Innovation. Community. Security.