>From a discussion on [log in to unmask] I conclude;
  delay 0.0; may, or may not, cause a task switch.
  If the compiler implements Annex D and the program includes a Pragma
Task_Dispatching_Poicy (FIFO_Within_Priorities); then a delay 0.0;
should definitely cause a task switch (assuming, obviously, there's
another task ready to switch to).
  The compiler should document a value D such that "delay D;" (or
greater than D) will cause blocking and thus task switching.  But if the
time resolution is poor (eg the 55ms common on PCs) the task may block
that long even if D is much less.
  Two questions: Is my understanding correct?  Are there compilers that
don't task switch on "delay 0.0;"?

(My ISP shows this as posted to c.l.a. several days ago, but nobody has
responded and dejanews doesn't seem to have heard of it.  Also, my
(mis)understanding of a requirement to switch on 0.0 was based on an
earlier version of Gnat (3.09?) that didn't.)