comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: confusion about message passing between the tasks
Date: Sat, 25 Oct 2014 18:23:33 -0400
Date: 2014-10-25T18:23:33-04:00	[thread overview]
Message-ID: <wcc8uk3kcuy.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: m2go3u$ors$2@dont-email.me

Jeffrey Carter <spam.jrcarter.not@spam.not.acm.org> writes:

> I think the OP's problem is that he's trying to think about Ada tasking in terms
> of message passing. Ada tasks operate with rendezvous and protected objects,
> which are synchronous by default, rather than with message passing as in Erlang,
> which is asynchronous by default.

Right.

If you want to think in terms of message passing, then you should think
of a rendezvous as involving TWO messages.  The entry caller sends a
message to the callee, and then awaits a reply.  When the callee reaches
the accept, it receives the message, then does the stuff in the accept,
then sends a reply message back to the caller.  Then the caller wakes
up and continues on its way.

So the callee doesn't need to explicitly send a reply message back to
the caller -- that happens automatically at the end of the accept.
The callee doesn't know the identity of the caller.
The caller needs to know the name of the callee, so it can
call the entry.

I prefer protected objects.  Less coupling: two tasks can communicate
with each other with neither one knowing the identity of the other --
they both just know about the protected object.

If I were redesigning Ada from scratch, I'd leave out rendezvous.
Everything you can do with rendezvous you can do with (something like)
protected objects.

- Bob

  reply	other threads:[~2014-10-25 22:23 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-24 16:44 confusion about message passing between the tasks compguy45
2014-10-24 18:39 ` Ludovic Brenta
2014-10-25  1:51   ` compguy45
2014-10-25  7:13     ` Ludovic Brenta
2014-10-24 23:49 ` Stribor40
2014-10-25  7:03   ` Ludovic Brenta
2014-10-25  7:58 ` Simon Wright
2014-10-25 13:01   ` compguy45
2014-10-25 14:11     ` Simon Wright
2014-10-25 17:25 ` Dennis Lee Bieber
2014-10-25 17:54   ` Jeffrey Carter
2014-10-25 22:23     ` Robert A Duff [this message]
2014-10-25 23:26       ` compguy45
2014-10-26  4:50         ` Dennis Lee Bieber
2014-10-26 10:20         ` Georg Bauhaus
2014-10-26  5:37       ` J-P. Rosen
2014-10-26  8:14         ` Pascal Obry
2014-10-26 15:47           ` J-P. Rosen
2014-10-26 20:27         ` Robert A Duff
2014-10-26 20:31           ` Robert A Duff
2014-10-26 20:36             ` Jeffrey Carter
2014-10-26 22:27               ` Robert A Duff
2014-10-26 23:23                 ` Jeffrey Carter
2014-10-27  0:46                   ` Robert A Duff
2014-10-27  2:18                     ` Jeffrey Carter
2014-10-27  7:51                     ` J-P. Rosen
2014-10-27  7:44             ` J-P. Rosen
2014-10-26 20:42           ` Dmitry A. Kazakov
2014-10-26 21:15             ` Brad Moore
2014-10-27  9:22               ` Dmitry A. Kazakov
2014-10-26 22:20             ` Robert A Duff
2014-10-27  7:40           ` J-P. Rosen
2014-10-25 23:42 ` compguy45
2014-10-25 23:55   ` compguy45
2014-10-26  0:24     ` Jeffrey Carter
2014-10-26  0:41       ` compguy45
2014-10-26 11:30         ` Brian Drummond
2014-10-26 15:40     ` Simon Wright
replies disabled

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