libxev is a cross-platform, high-performance event loop that provides abstractions for non-blocking IO, timers, events, and more and works on Linux (io_uring or epoll), macOS (kqueue), and Wasm + WASI. Available as both a Zig and C API.
noop operations were causing a panic when other completions were active. This was due to the user_data field of the io_uring_cqe being null when being converted to a *Completion in the tick_() function.
Note to reviewers
I tried to go for the simplest solution there. A cast to ?*Completion is attempted and the loop continues if it is null.
Description
noop
operations were causing a panic when other completions were active. This was due to theuser_data
field of theio_uring_cqe
beingnull
when being converted to a*Completion
in thetick_()
function.Note to reviewers
I tried to go for the simplest solution there. A cast to
?*Completion
is attempted and the loop continues if it isnull
.