package eio_linux

  1. Overview
  2. Docs
Eio implementation for Linux using io-uring

Install

Dune Dependency

Authors

Maintainers

Sources

eio-0.13.tbz
sha256=82537ee1c5b1829fde8207614a4e39f560bd582332841290ed5ef76691f3af70
sha512=69fc509e5ed34da64c3c26fa22558ce7f0cb42afa65c864c57dbb05948e12c0f4f6ab7b77a07f8b292ea3a18748ed46deb9da6af74852115da5e938177b3bf18

doc/eio_linux/Eio_linux/index.html

Module Eio_linuxSource

Eio backend using Linux's io_uring.

You will normally not use this module directly. Instead, use Eio_main.run to start an event loop and then use the API in the Eio module.

However, it is possible to use this module directly if you only want to support recent versions of Linux.

Main Loop

Sourceval run : ?queue_depth:int -> ?n_blocks:int -> ?block_size:int -> ?polling_timeout:int -> ?fallback:([ `Msg of string ] -> 'a) -> (stdenv -> 'a) -> 'a

Run an event loop using io_uring.

Uses Uring.create to create the io_uring, and Uring.set_fixed_buffer to set a block_size * n_blocks fixed buffer.

Note that if Linux resource limits prevent the requested fixed buffer from being allocated then run will continue without one (and log a warning).

For portable code, you should use Eio_main.run instead, which will use this automatically if running on Linux with a recent-enough kernel version.

  • parameter fallback

    Call this instead if io_uring is not available for some reason. The argument is a message describing the problem (for logging). The default simply raises an exception.

Low-level API

Sourcemodule Low_level : sig ... end

Low-level API for using uring directly.

OCaml

Innovation. Community. Security.