From: "John B. Matthews" <nospam@nospam.invalid>
Subject: Re: Barrier re-evaluation issue with GNAT 4.3.2
Date: Tue, 29 Sep 2009 11:06:47 -0400
Date: 2009-09-29T11:06:47-04:00 [thread overview]
Message-ID: <nospam-262F9A.11064729092009@news.aioe.org> (raw)
In-Reply-To: h9sgj7$1qr$1@news.eternal-september.org
In article <h9sgj7$1qr$1@news.eternal-september.org>,
Reto Buerki <reet@codelabs.ch> wrote:
> Jeffrey R. Carter wrote:
> > Reto Buerki wrote:
> >>
> >> Update: we just noticed that the warning actually *does* show up but we
> >> missed it in the previous build.
> >>
> >> I also think the warning is irrelevant. It seems that the compiler is
> >> not smart enough to figure out that the Signal() entry is always open.
> >
> > An entry call is always potentially blocking, regardless of its barrier;
> > see ARM 9.5.1. Technically, this code contains a bounded error. Since
> > the potentially blocking operation was detected, your program should
> > raise Program_Error; GNAT pretends that it hasn't detected that the
> > operation is potentially blocking and lets you get away with only a
> > warning. Other compilers (and even other versions of GNAT) may actually
> > raise Program_Error.
>
> Thanks for the clarification and the pointer to the ARM. This basically
> means that our workaround is not legal Ada code ...
Well, it's a bounded error. Using Pragma Detect_Blocking, as suggested
by Bob Duff, will tell you if the compiler's warning is actualized at
run-time. As this is a work-around and your original code seems correct,
you might arrange things so that the original can be restored easily
upon upgrade or port.
Because this can be a maintenance headache, you might also look through
some other examples of Timing_Events with a view towards your intended
usage:
<http://www.adaic.com/standards/05rat/html/Rat-1-3-4.html>
<http://www.adaic.com/standards/05rat/html/Rat-5-6.html>
--
John B. Matthews
trashgod at gmail dot com
<http://sites.google.com/site/drjohnbmatthews>
next prev parent reply other threads:[~2009-09-29 15:06 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-24 17:02 Barrier re-evaluation issue with GNAT 4.3.2 Reto Buerki
2009-09-24 17:47 ` Dmitry A. Kazakov
2009-09-25 8:50 ` Brad Moore
2009-09-25 9:17 ` Dmitry A. Kazakov
2009-09-25 9:57 ` Ludovic Brenta
2009-09-25 10:31 ` Dmitry A. Kazakov
2009-09-25 11:23 ` Jean-Pierre Rosen
2009-09-28 10:41 ` Reto Buerki
2009-09-25 17:06 ` Brad Moore
2009-09-25 18:42 ` Dmitry A. Kazakov
2009-09-25 19:39 ` Brad Moore
2009-09-28 10:18 ` Reto Buerki
2009-09-25 15:56 ` John B. Matthews
2009-09-26 14:23 ` John B. Matthews
2009-09-28 10:28 ` Reto Buerki
2009-09-28 12:39 ` John B. Matthews
2009-09-28 13:25 ` Reto Buerki
2009-09-28 14:05 ` Reto Buerki
2009-09-28 18:38 ` Jeffrey R. Carter
2009-09-28 18:51 ` Dmitry A. Kazakov
2009-09-29 8:37 ` Reto Buerki
2009-09-28 21:13 ` Robert A Duff
2009-09-28 22:28 ` Jeffrey R. Carter
2009-10-10 5:41 ` Randy Brukardt
2009-09-29 8:30 ` Reto Buerki
2009-09-29 15:06 ` John B. Matthews [this message]
2009-09-30 14:12 ` Reto Buerki
2009-09-30 15:59 ` John B. Matthews
2009-10-01 16:12 ` John B. Matthews
2009-10-01 17:17 ` Anh Vo
2009-10-02 2:26 ` John B. Matthews
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox