Go to the first, previous, next, last section, table of contents.


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 section 9.5.3 Entry Calls. The expiration time, See section 9.6 Delay Statements, Duration, and Time 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;
    


Go to the first, previous, next, last section, table of contents.