comp.lang.ada
 help / color / mirror / Atom feed
From: Karel Th�nissen <thoenissen@hello.nl>
Subject: Re: Ada Protected Object Tutorial #1
Date: 1999/12/17
Date: 1999-12-17T00:26:50+00:00	[thread overview]
Message-ID: <385984BC.1FB1@hello.nl> (raw)
In-Reply-To: 3858E5B3.9AB004E9@bton.ac.uk

John English wrote:
> 
> Kaz Kylheku wrote:
> > This approach to design is generally wasteful. It's more reasonable to have
> > public methods which always lock and unlock, and unprotected methods which
> > assume that an object is already locked. It's also useful for an object
> > to expose lock and unlock methods, and expose unprotected operations, so that
> > the user of the object can compose a sequence of operations into an indivisible
> > block.
> 
> Congratulations, you've just invented the semaphore... :-)

I noticed the smiley, but to be fair to the original poster this is not
quite true. He noticed that protected types are great if the caller
needs a single service from the protected type, but they are not that
great if you need more than one service from the same protected type.
Not only does the protected type solution require locking and unlocking
for every single service invocation, instead of one pair for the whole
deal, it also cannot avoid the situation that other tasks are serviced
in between two calls. This can make correctness difficult to prove.

Mr Kylheku did not claim any invention, he was just pointing out a
disadvantage of the protected type mechanism. BTW, even the protected
type uses a semaphore so his idea would not have been original and not
patentable (-8

I am wondering whether there is a clean solution to the problem that Mr
Kylheku presented: how can we combine several protected type services
into one transaction-like construct without requiring clairvoyance or
retrofitting. Of course we can always go back and change the code in the
protected type and offer the combined invocation of the multiplicity of
services as a single integrated service, but this option requires
recoding, recompilation and re-verification.

Solutions that do not use protected types are also welcome, if they are
safe and clean. So bluntly providing the services without any
concurrency protection and counting for the caller's willingness to use
a semaphore is outside the competition.

-- 

Groeten, Karel Th�nissen

Hello Technologies develops high integrity software for complex systems




  parent reply	other threads:[~1999-12-17  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 [this message]
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           ` Robert A Duff
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-17  0:00       ` Mike Silva
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
1999-12-27  0:00               ` Robert Dewar
1999-12-27  0:00                 ` Jean-Pierre Rosen
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               ` 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