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