On 2020-Jun-01 07:58:02 -0700, Larry McVoy wrote: >On Mon, Jun 01, 2020 at 01:32:56PM +1000, Dave Horsfall wrote: >> On Mon, 1 Jun 2020, Rob Pike wrote: >> >> > I???m not quite sure why the Research lineage did not include >> > non-blocking behaviour, especially in view of the man page comments. >> > Maybe it was seen as against the Unix philosophy, with select() >> > offering sufficient mechanism to avoid blocking (with open() the hard >> > corner case)? >> > >> >That's it. Select was good enough for our purposes. >> >> After being dragged through both Berserkley and SysVile, I never did get the >> hang of poll()/select() etc,,, > >I'm sure you could, select is super handy, think a network server like >apache. My view may be unpopular but I've always been disappointed that Unix implemented blocking I/O only and then had to add various hacks to cover up for the lack of asynchonous I/O. It's trivial to build blocking I/O operations on top of asynchonous I/O operations. It's impossible to do the opposite without additional functionality. I also found it disappointing that poll()/select() only worked on TTY and network operations. HDDs are really slow compared to CPUs and it would be really nice if a process could go and do something else whilst waiting for a file to open. -- Peter Jeremy