comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Arguments for single-mutex-exclusion on protected types (Was: Does Ada tasking profit from multi-core cpus?)
Date: Mon, 19 Mar 2007 20:36:26 -0500
Date: 2007-03-19T20:36:26-05:00	[thread overview]
Message-ID: <etndns$13j$1@jacob-sparre.dk> (raw)
In-Reply-To: 5iGLh.26236$PF.18838@attbi_s21

"Jeffrey R. Carter" <jrcarter@acm.org> wrote in message
news:5iGLh.26236$PF.18838@attbi_s21...
> Randy Brukardt wrote:
> >
> > The problem with ceiling locking is that it depends on boosting the
priority
> > of tasks. That means its a big problem for longer-running operations
(such
> > as I/O, which aren't allowed in protected operations for this reason).
And
> > it's a big problem for reusable libraries, which can't know ahead of
time
> > what the ceiling ought to be. (Make it too high, and critical tasks
could be
> > starved by lower-priority ones operating in the library, make it too low
and
> > tasks aren't even allowed to access the library.) Consider trying to set
the
> > ceiling for a container library implemented with protected objects. (At
> > least we now can do this on the fly; in Ada 95, it was impossible.)
>
> The PragmARCs use
>
> protected type Handle
>     (Ceiling_Priority : System.Any_Priority := System.Default_Priority)
> is
>     pragma Priority (Ceiling_Priority);
>
> They're Ada 95, and have been compiled with at least 2 different
> compilers. The problem is, as you pointed out, the library can't know
> what an appropriate priority is. Only the client can know that, and this
> allows the client to specify it.
>
> Is there something wrong with this approach?

Nothing serious, but it's less than ideal:
(1) It complicates the interface; it makes the client worry about something
that they probably don't care about.
(2) It doesn't work for a protected interface (no discriminants);
(3) It doesn't work as well if the protected object is wrapped in a tagged
type, because tagged types can't have defaults on their discriminants -
meaning that it always has to be specified. This also applies to any
protected object that defines an interface (it can have discriminants, but
no defaults, as it is considered tagged).

I suspect that most libraries will fall into category (2) or (3) [the latter
because of the need for clean-up, or simply that not all operations need to
be protected]. In any case, it illustrates the difficulty of defining
general-purpose task-safe libraries. There are a lot of gotchas that don't
apply to single-tasking code.

                                    Randy.





  reply	other threads:[~2007-03-20  1:36 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-29 11:57 Does Ada tasking profit from multi-core cpus? Gerd
2007-01-29 12:04 ` Georg Bauhaus
2007-01-30 13:55   ` Gerd
2007-02-09 10:18     ` karl
2007-02-09 11:03       ` Stefan Lucks
2007-02-09 11:35         ` Ludovic Brenta
2007-03-04 17:54 `   jpluto
2007-03-05 10:08   ` Ludovic Brenta
2007-03-05 13:12     ` Dmitry A. Kazakov
2007-03-06  5:33       ` tmoran
2007-03-06  8:44         ` Dmitry A. Kazakov
2007-03-07  7:52           ` tmoran
2007-03-07  9:31           ` tmoran
2007-03-06  9:40         ` Colin Paul Gloster
2007-03-06 12:47           ` Jeffrey Creem
2007-03-06 14:44           ` Georg Bauhaus
2007-03-06 16:53         ` Dr. Adrian Wrigley
2007-03-06 18:58           ` tmoran
2007-03-07 10:11             ` Colin Paul Gloster
2007-03-07 18:47               ` tmoran
2007-03-06 18:51         ` Jeffrey R. Carter
2007-03-16 14:29           ` Arguments for single-mutex-exclusion on protected types (Was: Does Ada tasking profit from multi-core cpus?) Jacob Sparre Andersen
2007-03-17  5:26             ` Jeffrey R. Carter
2007-03-17 17:22               ` Robert A Duff
2007-03-17 17:52                 ` Jeffrey R. Carter
2007-03-17 23:06                 ` Randy Brukardt
2007-03-18 17:57                   ` Robert A Duff
2007-03-19 21:49                     ` Randy Brukardt
2007-03-20  0:55                       ` Jeffrey R. Carter
2007-03-20  1:36                         ` Randy Brukardt [this message]
2007-03-20 16:32                           ` Jeffrey R. Carter
2007-03-20 17:51                             ` Randy Brukardt
2007-03-21  0:10                               ` Jeffrey R. Carter
2007-03-26 23:38                               ` Robert A Duff
2007-03-26 23:24                           ` Robert A Duff
2007-03-17 10:25             ` Dmitry A. Kazakov
2007-03-18 17:15               ` Arguments for single-mutex-exclusion on protected types Jacob Sparre Andersen
2007-03-18 18:50                 ` Dmitry A. Kazakov
2007-03-20 12:38                 ` Florian Weimer
2007-03-07  3:58       ` Does Ada tasking profit from multi-core cpus? Steve
2007-03-07  8:39         ` Dmitry A. Kazakov
2007-03-08  5:21           ` Randy Brukardt
2007-03-08 10:15             ` Dmitry A. Kazakov
2007-03-08 21:18               ` accuracy (was: Does Ada tasking profit from multi-core cpus?) Björn Persson
2007-03-09  8:33                 ` accuracy Dmitry A. Kazakov
2007-03-10  1:39                   ` accuracy Randy Brukardt
2007-03-10  9:11                     ` accuracy Dmitry A. Kazakov
2007-03-11  3:03                       ` accuracy Randy Brukardt
2007-03-11  5:21                         ` accuracy tmoran
2007-03-11  8:52                         ` accuracy Dmitry A. Kazakov
2007-03-11 13:57                           ` accuracy Pascal Obry
2007-03-11 14:16                             ` accuracy Dmitry A. Kazakov
2007-03-11 14:37                               ` accuracy Pascal Obry
2007-03-11 15:50                                 ` accuracy Dmitry A. Kazakov
2007-03-11 17:38                                   ` accuracy Pascal Obry
2007-03-11 18:48                                     ` accuracy Dmitry A. Kazakov
2007-03-12 20:20                           ` accuracy Randy Brukardt
2007-03-13  9:33                             ` accuracy Dmitry A. Kazakov
2007-03-10 14:53                     ` accuracy Stephen Leake
2007-03-10 18:36                       ` accuracy Cesar Rabak
2007-03-05 18:46   ` Does Ada tasking profit from multi-core cpus? Jeffrey R. Carter
replies disabled

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