> 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] http://www.calspan.com