3.9. Section 9: Tasks and Synchronization

Tasks, protected types and task-related statements are permitted subject to any explicit restrictions.

Except for the restrictions on the number of tasks in an entry queue and the nested rendezvous (which are checked at run time), the compiler will reject any program that does not conform to the default or given Profile.

3.9.1. type Duration

The predefined type Duration is 32-bit fixed-point type. The value of the least significant bit is one microsecond. Table 3-3 gives the attributes of this type.

Table 3-3. Attributes of the Predefined Type Duration

AttributeValueComment
Duration'Delta1.0E-6One microsecond
Duration'Small1.0E-6One microsecond
Duration'First-2147.483648Approx. -35 minutes
Duration'Last2147.483647Approx. 35 minutes

The types Time and Time_Span from predefined package Ada.Real_Time have the same representation as type Duration. However the type Time is declared as a modular type and comparisons of two times correctly account for the 71-minute cycle.

3.9.2. Shared Variables

ERC32 Ada supports the pragma Volatile, which guarantees that a variable will be fetched from memory each time it is referenced, and will be stored in memory on each assignment.

ERC32 Ada also supports the pragmas Atomic, Atomic_Components, and Volatile_Components, as specified in Section C.6 of the Ada 95 Reference Manual.