Blue Herring <[log in to unmask]> writes:

> One issue I had, was that I read somewhere that protected procedures
> and so forth, when executed, will run until completed, and not be
> interrupted by time slicing and so forth.

This statement is incorrect.  A protected operation gives you exclusive
access to a resource, that's all.


> This certainly does the job, but as a learned friend of mine pointed
> out, Ada protected types are meant to passively guard critical section
> data, but time slicing in the middle of execution would be fine, as
> long as mutual exclusion was maintained.

Yes.


> Is there a specific way this happens in the 95 standard, or is it
> implementation dependent?

Read the Ada95 Rationale for the gory details about "bounded priority
inversion" and spin-locks.


> I'm also curious if there is a compiler out there which does enforce
> consistant time slicing, since Gnat supposedly doesn't.

Forget time-slicing.  Forget round-robin scheduling.

Don't confuse "concurrency" with "parallelism."