On Tue, Jun 2, 2020 at 2:58 PM Paul Winalski <paul.winalski(a)gmail.com>
wrote:
I think that's a very good question. It's
analogous to
record-oriented I/O vs. byte stream I/O. It's easy to build
record-oriented I/O on top of a byte stream, but it's a real bear to
do it the other way around. Similarly, it's easy to build synchronous
I/O on top of asynchronous I/O but the reverse ends up looking contrived.
Which was exactly the point I tried to make in the POSIX.4 discussions, but
it does take more work in the basic housekeeping and you need a way to
handle events and completions that are priority based, queued, and a few
other details. As Doug said, they stayed away from some features (like
messaging). async I/O was one of them.
But as I said, Ken, Dennis and the rest of the crew did an amazing job with
very little.