CHANGES:
New features:
-
Add
Eio.Net.run_server
(@bikallem @talex5 #408).
Runs an accept loop in one or more domains, with cancellation and graceful shutdown,
and an optional maximum number of concurrent connections. -
Add
Buf_read.BE
andLE
parsers (@Cjen1 #399).
Parse numbers in various binary formats.
Performance:
-
Make
Eio.Condition
lock-free (@talex5 #397 #381).
In addition to being faster, this allows using conditions in signal handlers. -
Make
Eio.Semaphore
lock-free (@talex5 @polytypic #398). -
Make
Eio.Stream
lock-free when the capacity is zero (@talex5 #413 #411).
Bug fixes:
-
eio_linux: call
Uring.submit
as needed (@talex5 @bikallem #428).
Previously, we could fail to submit a job promptly because the SQE queue was full. -
Fix luv signals (@haesbaert #412).
libuv
automatically retries polling if it getsEINTR
, without giving OCaml signal handlers a chance to run. -
eio_luv: fix some resource leaks (@talex5 @patricoferris #421).
-
eio_luv: fix "unavailable signal" error on Windows (@talex5 #420, reported by @nojb).
Documentation:
-
Add a warning to the tutorial about
Fiber.first
(@talex5 #394). -
Describe
secure_random
as an infinite source (@patricoferris #426).
Other changes: