From: Adam Beneschan <adam@irvine.com>
Subject: Re: Class with task destructor
Date: Fri, 2 Dec 2011 08:20:43 -0800 (PST)
Date: 2011-12-02T08:20:43-08:00 [thread overview]
Message-ID: <05a2f750-fa76-4cd5-9e86-f3a8d22b44fe@s4g2000yqk.googlegroups.com> (raw)
In-Reply-To: jb9o0i$nkd$1@tornado.tornevall.net
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. In the code you've written
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. Also, I have no problem
believing that since the behavior of a multi-way entry would be
different, the implementation could well be very different from the
implementation necessary to implement asynchronous transfer of
control.
-- Adam
next prev parent reply other threads:[~2011-12-02 16:45 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 [this message]
2011-12-02 18:01 ` Dmitry A. Kazakov
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