Why not io_uring? That's the biggest game changer.
I guess because it's not possible to abstract away as much.
immibis•39m ago
io_uring works fundamentally differently from polling loops and closer to Windows' IOCP (which is awesome and better than everything that existed on Linux for many years). With a polling loop you wait for data to be available in buffers, and then once you get the ready event, you copy it from the kernel's buffer to yours. With IOCP or io_uring, you submit a long-running read or write event directly into your buffer. You get the event after the read or write call, instead of before. Because of this, it's not possible to make it a drop-in replacement for poll/epoll.
pengaru•26m ago
didn't prevent libuv from adding support for it when available:
Is this a Windows lib? The tradeoffs are probably completely different than what we're used to then.
> c-events provides function wrappers to some Linux like functionality, exp. mkfifo for Windows.
kevin_thibedeau•28m ago
void *rwtask(param_t v) {
...
a = v->int_ptr;
...
free(a);
It seems architecturally unwise to have a callback responsible for freeing its parameters. At the very least this fossilizes dependency on the stdlib heap.
mgaunard•1h ago
I guess because it's not possible to abstract away as much.
immibis•39m ago
pengaru•26m ago
https://github.com/libuv/libuv/issues/1947
foobarian•3m ago
> c-events provides function wrappers to some Linux like functionality, exp. mkfifo for Windows.