Overview of Ada 2022
6.7 Nonpreemptive dispatching needs more dispatching points
In non-preemptive dispatching there needs to be sufficient
points where rescheduling can occur, so as to restrict the amount of
time that a low priority task can block a higher priority task. If the
low priority task “gets lucky” and the entries it calls are
open, and suspension objects true, it can be some time before a rescheduling
point occurs.
Nonpreemptive dispatching needs more dispatching
points (AI12-0279)
provides a solution to this is by defining a
Yield
aspect that can be specified for a subprogram (see RM
D.2.1).
If a reschedule has not occurred within a call of the subprogram, then
one is inserted at the return from the subprogram.
© 2021, 2022 Jeff Cousins