On Monday, 4 January 2021 04:01:42 GMT Ian Haywood wrote:
In investigating async file I/O I came across this. In a nutshell it's the new epoll()
It's marginally more efficient although this is only apparent at very high loads.
What's more interesting is that io_uring accepts files as well as network/pipe handles: avoiding the need for threads.
What threads? Why do you call out file FDs different from socket FDs? The point of io_uring is to avoid transitions between user and kernel right? Nothing to do with thread. In current twisted you can run complex network code without threads already.
Here's a good intro: https://unixism.net/loti/index.html
Also there is full coverage of io_uring on lwn.net. Its a fast evolving kernel API.
If people think an IoUringReactor is worthwhile I'll open a ticket and make a start.
I'm guessing that you will need to write a Python extension to get at io_uring or use ctypes. Is that what you where expecting?
However it will need a reviewer... :-)
Yes this is going to be complex code that few people have any experience with. Barry
Ian
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python