Contents   Index   Search   Previous   Next
 9.7.2 Timed Entry Calls
1
   A 
timed_entry_call
issues an entry call that is cancelled if the call (or a requeue-with-abort
of the call) is not selected before the expiration time is reached. 
 
Syntax
2
timed_entry_call
::= 
  select
   entry_call_alternative
  or
   delay_alternative
  end select;
 
3
entry_call_alternative
::= 
  entry_call_statement [
sequence_of_statements]
 
Dynamic Semantics
4
   For the execution of a 
timed_entry_call,
the 
entry_name and the actual
parameters are evaluated, as for a simple entry call (see 
9.5.3).
The expiration time (see 
9.6) for the call
is determined by evaluating the 
delay_expression
of the 
delay_alternative; the entry
call is then issued.
 
5
   If the call is queued (including due to a requeue-with-abort),
and not selected before the expiration time is reached, an attempt to
cancel the call is made. If the call completes due to the cancellation,
the optional sequence_of_statements
of the delay_alternative is executed;
if the entry call completes normally, the optional sequence_of_statements
of the entry_call_alternative is
executed. 
Examples
6
   Example of a
timed entry call: 
7
select
   Controller.Request(Medium)(Some_Item);
or
   delay 45.0;
   --  controller too busy, try something else
end select;
Contents   Index   Search   Previous   Next   Legal