comp.lang.ada
 help / color / mirror / Atom feed
From: emery@mitre-bedford.arpa  (David Emery)
Subject: Re: non-blocking I/O on Unix workstations
Date: 13 Apr 92 14:20:16 GMT	[thread overview]
Message-ID: <EMERY.92Apr13092016@Dr_No.mitre.org> (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

                 reply	other threads:[~1992-04-13 14:20 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed
replies disabled

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