"J-P. Rosen" wrote in message news:ou8lod$3iq$3@dont-email.me... > Le 12/11/2017 à 05:33, Robert Eachus a écrit : >> On Monday, November 6, 2017 at 1:31:07 PM UTC-5, Simon Wright wrote: >>> Robert Eachus writes: >>> >>>> entry Write (D: in Data) is >>>> begin >>>> The_Data := D; >>>> Some_Data := True; >>>> Print(D); >>>> delay 0.1; >>>> end Write; >>> >> Having said that, the delay 0.1 is very naughty, but on most hardware it >> will be implemented as a counting loop. (Make it delay 0.0001 if that >> makes you happier. ;-) It is not illegal, and is only erroneous if it >> results in a scheduling action. >> > Delay is potentially blocking operation, so this is definitely a bounded > error. But it is allowed for a bounded error situation to give the > proper result... Unless pragma Detect_Blocking is given (which should have been the default in Ada, IMHO -- predictable is always better than "might work -- or not"). In that case, raising Program_Error is required. If the new aspect Nonblocking is used, the delay is statically illegal. (That *really* should have been the default, but it took us 20 years to figure out the right set of rules -- too late to mandate.) Randy.