package eio

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

Install

Dune Dependency

Authors

Maintainers

Sources

eio-1.2.tbz
sha256=3792e912bd8d494bb2e38f73081825e4d212b1970cf2c1f1b2966caa9fd6bc40
sha512=4a80dbcf8cf2663bdad0f2970871844f37bd293c56bd1ce602910e0a613754945f1f942719f9630906453be7c73c1732dc97526c6c90b0b36100d04fd5e871e4

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.