comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Class with task destructor
Date: Fri, 2 Dec 2011 19:01:13 +0100
Date: 2011-12-02T19:01:13+01:00	[thread overview]
Message-ID: <1wdqmij3pvk21.xxykxydlrctw.dlg@40tude.net> (raw)
In-Reply-To: 05a2f750-fa76-4cd5-9e86-f3a8d22b44fe@s4g2000yqk.googlegroups.com

On Fri, 2 Dec 2011 08:20:43 -0800 (PST), Adam Beneschan wrote:

> On Dec 1, 9:30�pm, Jeffrey Carter <spam.jrcarter....@spam.not.acm.org>
> wrote:
>> On 12/01/2011 05:50 PM, Randy Brukardt wrote:
>>
>>> In any case, what a particular target can do is not that relevant to what
>>> the language design can do. Ada 95 tried to add a multi-way entry call, and
>>> every implementer who studied it ended up reporting that the implementation
>>> would essentially end up being some form of polling. Which is not what
>>> anyone was hoping for. It got dropped from Ada 95.
>>
>> Ada 95 did add asynchronous transfer of control, which does allow an entry call
>> as a trigger, and anything in the "then abort" part, including an entry call:
>>
>> select
>> � � Entry_Call_1;
>> then abort
>> � � Entry_Call_2;
>> end select;
>>
>> These can be nested as deeply as desired, so it seems that Ada 95 did
>> effectively add a multi-way entry call.
> 
> It's not entirely the same, though.  In a multi-way entry, if entry
> Entry_Call_2 becomes available first, then that entry is accepted and
> Entry_Call_1 can no longer be accepted.
> above, if Entry_Call_2 is accepted first, but Entry_Call_1 becomes
> available before the Entry_Call_2 entry is completed, I believe that
> Entry_Call_1 is accepted and an attempt is made to cancel the call to
> Entry_Call_2--which probably doesn't succeed unless a requeue is
> involved, so that the Entry_Call_2 rendezvous still completes, but the
> Entry_Call_1 rendezvous also takes place.  I'm not 100% sure I have
> the semantics right, but I'm pretty sure the behavior would be
> different from a true multi-way entry.

I am uncomfortable with the semantics that allows aborting a rendezvous. It
is also unclear what happens when Entry_Call_1 re-queues without about. I
guess that should not be abortable. 

That was the "ANY" entry call. There also exists "ALL" entries call. That
is when the task engages a rendezvous with multiple tasks and/or executes
protected actions on multiple objects. E.g.

1. it awaits entries of all specified tasks and/or barriers of the
protected objects' entries;

2. the tasks are blocked and/or protected actions are started;

3. entries are executed in an unspecified order;

4. tasks are released and/or protected actions are completed.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2011-12-02 18:02 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-23  1:50 Class with task destructor Rego, P.
2011-11-23  2:44 ` Adam Beneschan
2011-11-23  5:04   ` Yannick Duchêne (Hibou57)
2011-11-23  6:14     ` Adam Beneschan
2011-11-24  0:15       ` Randy Brukardt
2011-11-24  2:48         ` Adam Beneschan
2011-11-29  3:36           ` Randy Brukardt
2011-11-29  9:31             ` Simon Wright
2011-11-29 15:37             ` Adam Beneschan
2011-11-23  8:35 ` Dmitry A. Kazakov
2011-11-23  9:05   ` Simon Wright
2011-11-23 10:41     ` Dmitry A. Kazakov
2011-11-30  1:11     ` Rego, P.
2011-11-30  2:21       ` Adam Beneschan
2011-11-30  8:41         ` Dmitry A. Kazakov
2011-12-01  0:35           ` Randy Brukardt
2011-12-01  6:28             ` J-P. Rosen
2011-12-01 10:55               ` Simon Wright
2011-12-01 21:48               ` Robert A Duff
2011-12-01 22:44                 ` Adam Beneschan
2011-12-02  0:57                 ` Randy Brukardt
2011-12-02  5:57                 ` J-P. Rosen
2011-12-02 15:07                   ` Robert A Duff
2011-12-02 18:41                   ` Jeffrey Carter
2011-12-01  9:25             ` Dmitry A. Kazakov
2011-12-01  1:58         ` Rego, P.
2011-11-30  8:35       ` Simon Wright
2011-11-30 15:36         ` Adam Beneschan
2011-11-30 16:32           ` Robert A Duff
2011-12-01  0:40             ` Randy Brukardt
2011-12-01  8:50               ` Yannick Duchêne (Hibou57)
2011-12-02  0:50                 ` Randy Brukardt
2011-12-02  5:30                   ` Jeffrey Carter
2011-12-02 16:20                     ` Adam Beneschan
2011-12-02 18:01                       ` Dmitry A. Kazakov [this message]
2011-12-02 18:50                       ` Jeffrey Carter
2011-12-02 19:03                         ` Adam Beneschan
2011-12-01 10:51           ` Simon Wright
2011-12-01 22:59             ` Simon Wright
2011-12-01  1:59         ` Rego, P.
2011-11-30  1:47     ` Rego, P.
     [not found]     ` <15090042.1880.1322617401962.JavaMail.geo-discussion-forums@yqkn8>
2011-11-30  8:43       ` Dmitry A. Kazakov
2011-12-01  1:53         ` Rego, P.
2011-12-01  9:28           ` Dmitry A. Kazakov
2011-11-25  2:44   ` Rego, P.
     [not found]   ` <28489797.1088.1322188495508.JavaMail.geo-discussion-forums@yqf20>
2011-11-25  9:19     ` Dmitry A. Kazakov
2011-11-29  3:40       ` Randy Brukardt
2011-11-23 10:26 ` Brian Drummond
2011-11-25  1:37   ` Rego, P.
2011-11-25 13:40     ` Brian Drummond
replies disabled

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