![](https://secure.gravatar.com/avatar/83111e3ce141b383d5169be6edd768d1.jpg?s=120&d=mm&r=g)
Since async file I/O is not a thing you can implement[1], ...
[1]: <http://blog.libtorrent.org/2012/10/asynchronous-disk-io/>
Understood that it isn't possible to use native asynchronous I/O. But an implementation that used threads behind the scenes and returned a Deferred (for small files) or a Protocol (for big ones) would be a nice thing to have.
Yeah, reading a single block from disk can take somewhere between roughly 10us (FusionIO) to 10ms (magnetic platter), and if I need only single blocks (not streaming .. say I access an on-disk key-value store), it would be nice if that would be encapsulated in a deferred, while the reactor drives other stuff. Ideally without a background worker thread pool on platforms that have sufficient/sane support. And worked around via thread pool on others.