package eio

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

Install

Dune Dependency

Authors

Maintainers

Sources

eio-1.1.tbz
sha256=346104884077f140b3574e1daccc02212960c6efeb793c803e3e6b8bafea0fab
sha512=18abde418c56b1ceed3e8f075cb94e5c951b5cfea967ec4cb5f8e1e4d635b801b3c9e6ec61f89483490dbec143c33b9b76d947bff1183d44e6e0e01d93821dfb

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.