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

Reply via email to