On 2013-11-13 23:15, Daniel Micay wrote: > The issue with async/await is that while it maps very well to the AIO > primitives like IOCP and POSIX AIO, it doesn't map well to something > that's solid on Linux.
Then help fix Linux. (Yes, I'm serious.) > It's just not how I/O is done on the platform. > It uses *non-blocking* I/O so scale up socket servers, with > notification of ready state rather than completion state. This doesn't > work for file system access though. > > There's a significant performance hit from moving maybe-blocking I/O > calls into thread pools to fit a square peg into a round hole. > And your proposed solution for this is to force *everything* into a round hole? You'd essentially be forcing every single socket server-type application to implement their *own* thread pool mechanism. Which (assuming Windows IOCPs work well) would be suboptimal on Windows and an extra interoperability concern when sharing code which lives atop a "socket server". The JVM world is actually doing this experiment and it has led to a huge mess of non-interoperable and non-composable code. I would urge anyone to *not* follow the same route. Regards, _______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
