comp.lang.ada
 help / color / mirror / Atom feed
* Re: non-blocking I/O on Unix workstations
@ 1992-04-13 14:20 David Emery
  0 siblings, 0 replies; only message in thread
From: David Emery @ 1992-04-13 14:20 UTC (permalink / raw)


>	1) compilers that run on mainstream Unix systems that
>	just flat out provide non-blocking I/O for standard Ada
>	I/O calls.

This is an operating system problem, not a compiler problem.  Why
do you expect a compiler to fix shortcomings in the operating
system????

Non-blocking I/O on Unix is certainly a FAQ in these parts.  There are
techniques in various flavers of Unix to support non-blocking IO (e.g.
the select() call.)  But, these extensions are not portable, and it's
my understanding that they often require support from device drivers
that isn't always there.  

POSIX (P1003.1/ISO 9945-1) provides no facilities that guarantee
non-blocking IO. 

The general view of a program (Ada or C) to Unix is a single process.
The default behavior during a system call is that a process blocks
during the system call.  This hasn't been a problem for C, because
C programs (on Unix) are not multi-threaded.  The introduction of
threads/lightweight process/etc. for C has raised this issue for C,
too.  In these cases, the implementation of a specific threads package
on a specific system can take advantage of support in that system
(often added to support C threads) for non-blocking I/O.  When such
systems are available (e.g.  POSIX P1003.4a), then Ada can take
advantage of them.  

				dave

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1992-04-13 14:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1992-04-13 14:20 non-blocking I/O on Unix workstations David Emery

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox