4 ms·
Io_uring is not an event system (2021)
- catchcatchcatch 1y ago[dead]
- PunchyHamster 1y ago>io_uring is not an event system at all. io_uring is actually a generic asynchronous syscall facility. It's not an event system at all! It's an event system! The type of events being subset of all possible events in system does not make it not events system. Nor it being essentially a queue
- ciconia 1y agoIt's not an event system in the sense that it's not just a way to get notified when a file descriptor is ready for reading or writing. Like the OP says, it is a way to run syscalls asynchronously.
- jcelerier 1y ago> It's not an event system in the sense that it's not just a way to get notified when a file descriptor is ready for reading or writing. first time in my life I hear people calling this an event system. For me it's always been any architecture centered around asynchronous message queues.
- hxtk 1y agoEvent-Driven Architecture refers to a different thing, but people used to refer to async code as event-based back before async/await existed, when doing async meant writing the Event Loop yourself.
- Sharlin 1y agoYes, but "fd readiness checker" is a super narrow nonstandard definition of "event system". Though I get what the author tries to say.
- lordnacho 1y agoI thought the main selling point was that you could tell the system "when you finally get this response, run this function on it"
- ciconia 1y agoThere are no callbacks in io_uring. You submit an operation (SQE), the kernel runs your request while you're doing other stuff, eventually you get back a completion entry (CQE) with the results of the operation.
- Muromec 1y agoSounds like a callback to me
- vlovich123 1y agoSaying it’s a callback is equivalent to claiming select is a callback. Receiving an event does not a callback make - providing the function address to invoke would make it a callback.
- Veserv 1y agoCallback execution is: wait until begin event occurs, then do this operation. Asynchronous execution is: do this operation, then wait until finish event occurs. They are opposites.
- pyrolistical 1y agoThere is no callback. The response just shows up on the other ring buffer. The client decides when to look at the ring buffer
- Analemma_ 1y agoIt's not. The NT kernel and some others have genuine callbacks in some of their syscalls, where you pass a userspace function pointer which the kernel invokes on completion; io_uring isn't that and Linux doesn't have anything like that.
- kiitos 1y ago"event system" is any mechanism where events (readiness, completion, signals, GUI messages) drive control flow, restricting "event system" to descriptor readiness exclusively is the author's personal framing, not exactly common parlance