Next: , Previous: 9.7.2, Up: 9.7


9.7.3 Conditional Entry Calls

1/2
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). A procedure call may appear rather than an entry call for cases where the procedure might be implemented by an entry.

Syntax

2

conditional_entry_call::=
  select
   entry_call_alternative
  else
   sequence_of_statements
  end select;
Dynamic Semantics

3
The execution of a conditional_entry_call is defined to be equivalent to the execution of a timed_entry_call (see 9.7.2) with a delay_alternative (see 9.7.1) specifying an immediate expiration time and the same sequence_of_statements (see 5.1) as given after the reserved word else.

     NOTES

4

40  A conditional_entry_call may briefly increase the Count attribute of the entry, even if the conditional call is not selected.
Examples

5
Example of a conditional entry call:

6

     procedure Spin(R in Resource) is
     begin
        loop
           select
              R.Seize;
              return;
           else
              null;  −−  busy waiting
           end select;
        end loop;
     end;