Ada Reference ManualLegal Information
Contents   Index   References   Search   Previous   Next 

D.2.4 Non-Preemptive Dispatching

1/2
This clause defines a non-preemptive task dispatching policy. 

Static Semantics

2/2
The policy_identifier Non_Preemptive_FIFO_Within_Priorities is a task dispatching policy.

Legality Rules

3/2
Non_Preemptive_FIFO_Within_Priorities shall not be specified as the policy_identifier of pragma Priority_Specific_Dispatching (see D.2.2).

Dynamic Semantics

4/2
When Non_Preemptive_FIFO_Within_Priorities is in effect, modifications to the ready queues occur only as follows:
5/2
6/2
7/2
8/2
9/2
For this policy, a non-blocking delay_statement is the only non-blocking event that is a task dispatching point (see D.2.1).

Implementation Requirements

10/2
 An implementation shall allow, for a single partition, both the task dispatching policy to be specified as Non_Preemptive_FIFO_Within_Priorities and also the locking policy (see D.3) to be specified as Ceiling_Locking. 

Implementation Permissions

11/2
 Since implementations are allowed to round all ceiling priorities in subrange System.Priority to System.Priority'Last (see D.3), an implementation may allow a task to execute within a protected object without raising its active priority provided the associated protected unit does not contain pragma Interrupt_Priority, Interrupt_Handler, or Attach_Handler.

Contents   Index   References   Search   Previous   Next 
Ada-Europe Sponsored by Ada-Europe