comp.lang.ada
 help / color / mirror / Atom feed
* Asynchronous select and requeue
@ 2001-07-30 22:04 Adam Beneschan
  0 siblings, 0 replies; only message in thread
From: Adam Beneschan @ 2001-07-30 22:04 UTC (permalink / raw)


I'm a bit confused about one aspect of Asynchronous Transfer of
Control:

select
    T1.E1;    -- entry call
then abort
    ...
end select;

9.7.3(9) says "If the triggering_statement [in this case, the entry
call] completes other than due to cancellation, the abortable_part is
aborted...".  I'm a little confused about just what "completes" means
in the case that the triggering_statement is an entry call, as above,
and the entry call is requeued.

What is supposed to happen if the entry call is requeued with abort? 
Does the abortable part continue executing, or is it aborted?  If the
abortable part is aborted, I presume the calling task is now blocked
until the entry is complete?

What is supposed to happen if the entry call is requeued *without*
abort?  Does the abortable part continue executing, or is it aborted? 
If it's not aborted, and it completes, then the RM says an attempt to
cancel the entry call is made (9.7.3(8))---but I presume that in this
case the entry call is not canceled, and the task is now blocked until
the entry completes?

Can someone enlighten me on this?

				-- thanks, Adam



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-07-30 22:04 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-07-30 22:04 Asynchronous select and requeue Adam Beneschan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox