Interesting blog. The gist seems to be to use a thread pool for disk operations instead of AOI. This translates fairly directly to Tulip/Trollius, using the run_in_executor() operation. It's pretty clear to me that Windows IOCP does support async operations on disk files, so it would behoove us to design a standard API for async disk operations that can be implemented either using IOCP or using a thread pool.
On Tue, Jan 13, 2015 at 8:07 AM, Victor Stinner <[email protected]> wrote: > 2015-01-13 16:24 GMT+01:00 Saúl Ibarra Corretgé <[email protected]>: > > libuv (Node's platform layer) core dev here. That's right all filesystem > > operations are run in a threadpool, much like asyncio runs getaddrinfo > > in a ThreadPoolExecutor. > > > > Here is an interesting read: > > http://blog.libtorrent.org/2012/10/asynchronous-disk-io/ > > Thanks for the link. I used the ThirdParty wiki page to keep these info: > https://code.google.com/p/tulip/wiki/ThirdParty#Filesystem > > I don't understand the status on Windows when the ProactorEventLoop is > used: are filesystem operation blocking or not? > > Latest discussion on the Linux kernel: http://lwn.net/Articles/612483/ > > Victor > -- --Guido van Rossum (python.org/~guido)
