0.15
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. -
Include backtrace in systhread errors (@talex5 #688, reviewed by @SGrondin).
Also, addEio.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:
-
Adjust COC contacts (@polytypic #685, reviewed by @Sudha247).
Bug fixes:
-
eio_linux: retry
openat2
onEAGAIN
(@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: