package eio

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

Install

Dune Dependency

Authors

Maintainers

Sources

eio-1.0.tbz
sha256=da260d9da38b3dde9f316652a20b13a261cf90b85a2498ac669b7d564e61942d
sha512=5886e1159f48ede237769baa1d8b5daafa0310e4192d7fe0e8c32aef70f2b6378cef72d0fbae308457e25d87a69802b9ee83a5e8f23e0591d83086a92d701c46

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.