comp.lang.ada
 help / color / mirror / Atom feed
From: adam@irvine.com (Adam Beneschan)
Subject: Asynchronous select and requeue
Date: 30 Jul 2001 15:04:56 -0700
Date: 2001-07-30T22:04:56+00:00	[thread overview]
Message-ID: <b4682ab7.0107301404.3db2ee11@posting.google.com> (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



                 reply	other threads:[~2001-07-30 22:04 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed
replies disabled

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