From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,a4db0fc323f0b09e X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news3.google.com!feeder.news-service.com!188.40.43.213.MISMATCH!feeder.eternal-september.org!eternal-september.org!not-for-mail From: Reto Buerki Newsgroups: comp.lang.ada Subject: Re: Barrier re-evaluation issue with GNAT 4.3.2 Date: Tue, 29 Sep 2009 10:37:11 +0200 Organization: A noiseless patient Spider Message-ID: References: <149j9gmsas1fp$.1d62gknnx87q4$.dlg@40tude.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: news.eternal-september.org U2FsdGVkX18Bgrd0MTia0APrwPdtp/aaEHWnGWS4WrhTxQT7G9i4lBVRcniF06UscmTl1rGqZsgK2QLA9OgAIfDtHIysoob5gtMUZgFeJhpoLOswnAIMG9kZiE4/qdcfRnc1FP+CKa0= X-Complaints-To: abuse@eternal-september.org NNTP-Posting-Date: Tue, 29 Sep 2009 08:36:59 +0000 (UTC) In-Reply-To: <149j9gmsas1fp$.1d62gknnx87q4$.dlg@40tude.net> X-Auth-Sender: U2FsdGVkX18hCWJZH/SDdny09hjt8LhgXRI/25FS7dc= Cancel-Lock: sha1:pzeD+oTobhP0cqzroL1xw5BRNek= User-Agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090706) Xref: g2news2.google.com comp.lang.ada:8529 Date: 2009-09-29T10:37:11+02:00 List-Id: Dmitry A. Kazakov wrote: > On Mon, 28 Sep 2009 11:38:18 -0700, Jeffrey R. Carter wrote: > >> 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. > > A small addition to above. If you wanted to call to an entry from inside a > protected procedure you have two options: > > 1. the callee is made a protected procedure (can be factored out); This does not work in our case because of the compiler bug: barriers are only re-evaluated if the callee is an entry. > 2. the caller is made an entry, and the call replaced with requeue. We will look into this. Since access types to protected entries are not allowed, we need to rewrite some alarm timer code first.