[net.micro.amiga] non-blocking I/O

dillon@ucbvax.BERKELEY.EDU (Matt Dillon) (01/17/86)

FLAME ON

	Arrggg... the O_NDELAY flag for Lattice C's open() doesn't work.  Does
anybody know how to do non-blocking I/O without using those idiot Ports ???
If the operating system was done right, it would be an ioctl, generic for any
file descriptor (or File structure pointer).

	One should not need so many include files for simple programs.  Why
weren't the generic Read() and Write() routines given these options?  Also,
I am quite sick an tired of having to write 40 lines of code just to simply
read all the character's currently in the serial buffer, and NOT block when
there aren't any (or the buffer isn't full... yucc)

	Further gripes:  The signalling was done wrong,
			 Devices are not generic enough,
			 The directory structure was done wrong,
			 The filesystem is minimal and not flexable,
			 The Screen/Window routines are not generic enough,
			 The Wait(), message, and packet protocols are all
				wrong.
			 The multi-tasking was done all wrong.  Not only are
			  tasks defined fuzzily (and this goes along with
			  the signal structure), but the OS does not have the
			  ability to kill a task and release it's resources.
			  Additionaly, most of the devices should NOT have been
			  done as tasks.

	P.S. generic: On the Amiga it takes 40 lines of code to do things
	(Like non-blocking I/O) which takes 2 lines of code (an open() and
	an ioctl()) on UNIX systems.


FLAME OFF

	Really, though, the OS is fantastic, but the interface lacks forsight.
	In fact, there is no interface.  As far as I can tell, and judging
	from the include files, nobody bothered to write a syscall interface.

	Calls like Open, Close, Rename, Delete file, etc... should be syscalls.
	Ports, Device driver calls, and specific device I/O calls should NOT.
	They should have been implimented through Open.  Now you know why UNIX
	is based on "The File Descriptor"; you've screwed yourself by not
	taking that into consideration.
			 
	Solutions, anybody?   I think I'm going to re-write the OS.

					-Matt
				
P.S. The graphics routines are excellent, once all the libraries, screens,
and windows are initialized.