comp.lang.ada
 help / color / mirror / Atom feed
From: kaz@ashi.footprints.net (Kaz Kylheku)
Subject: Re: Ada Protected Object Tutorial #1
Date: 1999/12/26
Date: 1999-12-26T00:00:00+00:00	[thread overview]
Message-ID: <slrn86d0ao.fbn.kaz@ashi.FootPrints.net> (raw)
In-Reply-To: 845pgk$qkf$1@nnrp1.deja.com

On Sun, 26 Dec 1999 19:20:04 GMT, Robert Dewar <robert_dewar@my-deja.com> wrote:
>In article
><Pine.A41.3.96-heb-2.07.991226141254.25330A-100000@pluto.mscc.hu
>ji.ac.il>,
>> This very interesting article tries to explain why it
>> is almost always better to use protected types, and create
>> less tasks. It gives detailed examples of many tasking idiom,
>> so it is also helpful as a guide to Ada tasking.
>
>
>I disagree with this conclusion. Indeed my view is that it is
>almost always better to use an intermediate task than a
>protected object unless you specifically need the low level
>efficiency that protected objects can provide in some
>implementations.
>
>Why? Because protected objects in Ada have relatively nasty low
>level semantics that do not compose properly, because of the

That's the sense that I get. For example, earlier in the debate I was told that
when the requirements change in certain ways, you have to abandon protected
objects. E.g. if you need an object's operation to call into another subsystem
which may call back.

I buy the argument that it's often better to do with fewer threads.  When
software has to synchronize with itself internally via a rendezvous mechanism,
that is a waste of time. It's more efficient to just let threads go loose into
foreign objects and do as much work as possible in a non-blocking manner.
Using send/receive/reply discipline for synchronization is a waste of cycles.
Though it can lead to software that is easier to debug, no contest there.




  reply	other threads:[~1999-12-26  0:00 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-12-15  0:00 Ada Protected Object Tutorial #1 James S. Rogers
1999-12-16  0:00 ` Kaz Kylheku
1999-12-16  0:00   ` James S. Rogers
1999-12-17  0:00     ` Laurent Guerby
1999-12-16  0:00   ` John English
1999-12-16  0:00     ` Ed Falis
1999-12-16  0:00       ` Usenet Poster Boy
1999-12-17  0:00     ` Karel Th�nissen
1999-12-17  0:00       ` Mike Silva
1999-12-17  0:00       ` Laurent Guerby
1999-12-18  0:00         ` Karel Th�nissen
1999-12-18  0:00           ` Laurent Guerby
1999-12-18  0:00         ` Kaz Kylheku
1999-12-18  0:00           ` Laurent Guerby
1999-12-18  0:00             ` Kaz Kylheku
1999-12-19  0:00               ` Laurent Guerby
1999-12-20  0:00                 ` Stanley R. Allen
1999-12-21  0:00               ` Robert I. Eachus
     [not found]             ` <33qr5scnbs04v391ev4541p5bv48hklg3q@4ax.com>
1999-12-20  0:00               ` Robert A Duff
1999-12-18  0:00           ` Robert A Duff
1999-12-18  0:00             ` Kaz Kylheku
1999-12-24  0:00       ` Kenneth Almquist
1999-12-17  0:00   ` Robert A Duff
1999-12-17  0:00     ` Vladimir Olensky
1999-12-17  0:00   ` Tucker Taft
1999-12-18  0:00     ` Kaz Kylheku
1999-12-18  0:00       ` Robert A Duff
1999-12-18  0:00         ` Kaz Kylheku
1999-12-19  0:00           ` swhalen
1999-12-19  0:00             ` Kaz Kylheku
1999-12-19  0:00               ` Robert Dewar
1999-12-19  0:00               ` Laurent Guerby
1999-12-20  0:00       ` Vladimir Olensky
1999-12-26  0:00         ` Ehud Lamm
1999-12-26  0:00           ` Robert Dewar
1999-12-26  0:00             ` Kaz Kylheku [this message]
1999-12-27  0:00               ` Robert Dewar
1999-12-27  0:00                 ` Richard D Riehle
1999-12-27  0:00                   ` Robert Dewar
1999-12-31  0:00                     ` Richard D Riehle
1999-12-27  0:00                 ` Jean-Pierre Rosen
1999-12-27  0:00               ` Robert Dewar
2000-01-02  0:00             ` Tucker Taft
1999-12-17  0:00 ` Robert A Duff
1999-12-18  0:00   ` Kaz Kylheku
replies disabled

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