[comp.lang.ada] Ada timing

jeffw@sce.carleton.ca (Jeff Wilson) (10/19/89)

     I'm trying to obtain some information about the semantics
of Ada timing.  For instance, if a task executes a timed entry
call, does the specified time begin when the call

1) 'leaves' the task?
2) 'leaves' the task's logical processor?
3) 'arrives' at the acceptor's logical processor?
4) 'arrives' at the acceptor's entry queue?

Any information which directly or remotely deals with Ada
timing semantics and implementations would be appreciated.

Jeff Wilson
Dept. of Systems and Computer Engineering
Carleton University
Ottawa, Ontario, Canada K1S 5B6
jeffw@sce.carleton.ca

stt@inmet (10/21/89)

It is not currently well defined in Ada exactly
when the delay starts for a timed entry call, though
I suspect a goal of Ada9X is to define this well.
The place where this becomes interesting is obviously
in a physically distributed system.  

Personally, I have always favored the interpretation where
the delay starts when the call "arrives" at the acceptor,
since this makes the conditional entry call equivalent
to a timed entry call with a delay of 0.  
The delay is therefore interpreted as
a limit on the queue waiting time, rather than on
any aspect of the communication overhead of the entry call.

Of course, there are situations where the other interpretation
(where the communication delay contributes to the expiration
of the delay) is more useful, but since it is so hard
to define well in the absence of "global time,"
and to implement efficiently and faithfully, and
since it means that a conditional entry is *not* the same
as a timed entry with delay of zero, I don't think it
is the right answer.

S. Tucker Taft   stt%inmet@uunet.uu.net   uunet!inmet!stt
Intermetrics, Inc.
Cambridge, MA  02138