TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Classic View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Terry Westley <[log in to unmask]>
Wed, 5 Aug 1998 15:21:12 -0400
text/plain (24 lines)
> Are non-blocking sockets really needed, given Ada's tasking
> abilities?

It depends on whether the tasking is implemented within a
single process (as did most early Ada compilers), in which
case the answer is Yes, or takes advantage of threads and/or
light weight processes (as do many current compilers), in
which the answer is No.

If the Ada program is implemented as a single OS process,
including the task scheduling code, when the Ada code makes a
blocking system call, the whole program is blocked, including
the task scheduling code.  There are some exceptions to this
in the way Unix signal handling works.  You might be able to
run a task scheduler on catching the signal, but you wouldn't
want to try to cheat and resume a task at this point.  It'd be
a little like trying to run a task at interrupt level.

Terry J. Westley, Principal Engineer
Calspan, An operation of Veridian
P.O. Box 400, Buffalo, NY 14225
[log in to unmask]