Contents   Index   Search   Previous   Next


D.9 Delay Accuracy

1
   This clause specifies performance requirements for the delay_statement. The rules apply both to delay_relative_statement and to delay_until_statement. Similarly, they apply equally to a simple delay_statement and to one which appears in a delay_alternative.

Dynamic Semantics

2
   The effect of the delay_statement for Real_Time.Time is defined in terms of Real_Time.Clock:
3
4
5
   A simple delay_statement with a negative or zero value for the expiration time does not cause the calling task to be blocked; it is nevertheless a potentially blocking operation (see 9.5.1).
6
   When a delay_statement appears in a delay_alternative of a timed_entry_call the selection of the entry call is attempted, regardless of the specified expiration time. When a delay_statement appears in a selective_accept_alternative, and a call is queued on one of the open entries, the selection of that entry call proceeds, regardless of the value of the delay expression.

Documentation Requirements

7
   The implementation shall document the minimum value of the delay expression of a delay_relative_statement that causes the task to actually be blocked.
8
   The implementation shall document the minimum difference between the value of the delay expression of a delay_until_statement and the value of Real_Time.Clock, that causes the task to actually be blocked.

Metrics

9
   The implementation shall document the following metrics:
10
11
12
13
NOTES
14
32  The execution time of a delay_statement that does not cause the task to be blocked (e.g. ``delay 0.0;'' ) is of interest in situations where delays are used to achieve voluntary round-robin task dispatching among equal-priority tasks.

Contents   Index   Search   Previous   Next   Legal