Tasks, protected types and task-related statements are permitted subject to the restrictions of the Ravenscar Profile.
Task declarations are only permitted at the library level. Tasks may not be dynamically allocated. Tasks may not have entries (and therefore no select or accept statements). Tasks may have discriminants. Tasks may not terminate.
Protected objects are only permitted at the library level. Protected objects may not be dynamically allocated. The maximum number of entries for a protected object is one. The entry barrier must be a simple Boolean variable, and a maximum of one task may wait on the entry.
The package Ada.Real_Time is provided, and the type Ada.Real_Time.Time may be used in a delay until statement.
The package Ada.Synchronous_Task_Control is provided and offers an alternative and possibly more efficient way for tasks to communicate.
Except for the restriction on the number of tasks in an entry queue, the compiler will reject any program that does not conform to the Ravenscar Profile.
The predefined type Duration is 32-bit fixed-point type. The value of the least significant bit is one microsecond. Table 1-3 gives the attributes of this type.
Table 1-3. Attributes of the Predefined Type Duration
| Attribute | Value | Comment |
|---|---|---|
| Duration'Delta | 1.0E-6 | One microsecond |
| Duration'Small | 1.0E-6 | One microsecond |
| Duration'First | -2147.483648 | Approx. -35 minutes |
| Duration'Last | 2147.483647 | Approx. 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.
ERC32 Ada supports the predefined 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 predefined pragmas Atomic, Atomic_Components, and Volatile_Components, as specified in Section C.6 of the Ada 95 Reference Manual.