github ocaml-multicore/eio v0.15
0.15

latest release: v1.0
2 months ago

CHANGES:

New features:

  • eio_posix: use directory FDs instead of realpath (@talex5 #694 #696, reviewed by @SGrondin).
    Using realpath was an old hack from the libuv days and subject to races. It was also slow.

  • Keep pool of systhreads for blocking operations (@SGrondin @talex5 #681).
    This is much faster than creating a new thread for each operation.
    It mainly benefits the eio_posix backend, as that uses lots of systhreads.

  • Make Switch.on_release thread-safe (@talex5 #684, requested by @art-w and @clecat).
    This allows resource pools to be shared between domains easily.

  • Add Eio.Path.read_link (@talex5 #686).

  • Add Eio_unix.Fd.is_open (@talex5 #690).

  • Include backtrace in systhread errors (@talex5 #688, reviewed by @SGrondin).
    Also, add Eio.Exn.empty_backtrace as a convenience.

  • eio.mock: add tracing support to mock backend (@talex5 #687).

  • Improve tracing (@talex5 #675 #683 #676, reviewed by @SGrondin).
    Update tracing section of README and trace more things
    (run_in_systhread, close, submit, traceln, cancellation and domain spawning).

Documentation:

Bug fixes:

  • eio_linux: retry openat2 on EAGAIN (@talex5 #693, reviewed by @SGrondin).

  • eio_posix and eio_windows: check for IO periodically (@talex5 #674).

  • Handle EPERM when trying to initialise uring (@talex5 #691).
    This can happen when using a Docker container.

Build and tests:

Don't miss a new eio release

NewReleases is sending notifications on new releases.