>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.)