9.7.3 Conditional Entry Calls
A conditional_entry_call issues an entry call that is then cancelled if it is not selected immediately (or if a requeue-with-abort of the call is not selected immediately).
conditional_entry_call ::= select entry_call_alternative else sequence_of_statements end select;
The execution of a conditional_entry_call is defined to be equivalent to the execution of a timed_entry_call with a delay_alternative specifying an immediate expiration time and the same sequence_of_statements as given after the reserved word else.
37 A conditional_entry_call may briefly increase the Count attribute of the entry, even if the conditional call is not selected.
Example of a conditional entry call:
procedure Spin(R : in Resource) is begin loop select R.Seize; return; else null; -- busy waiting end select; end loop; end;
Copyright © 1992,1993,1994,1995 Intermetrics, Inc.
Copyright © 2000 The MITRE Corporation, Inc. Ada Reference Manual