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,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.140.238.201 with SMTP id j192mr4895455qhc.14.1432836757226; Thu, 28 May 2015 11:12:37 -0700 (PDT) X-Received: by 10.140.47.68 with SMTP id l62mr73123qga.42.1432836757210; Thu, 28 May 2015 11:12:37 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!peer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!z60no4329289qgd.1!news-out.google.com!k20ni44987qgd.0!nntp.google.com!z60no4329284qgd.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Thu, 28 May 2015 11:12:35 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=105.237.62.132; posting-account=orbgeAkAAADzWCTlruxuX_Ts4lIq8C5J NNTP-Posting-Host: 105.237.62.132 References: <9ad1fcdc-cdf9-4ff0-aa7e-051d53b6736a@googlegroups.com> <7d56e720-5e91-4950-b4ae-29d7ddbdc11a@googlegroups.com> <2e388144-8941-41a6-a8aa-447a798006d8@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <4aa36f8b-b784-4433-b948-105fa9314ed9@googlegroups.com> Subject: Re: longest path through a task From: jan.de.kruyf@gmail.com Injection-Date: Thu, 28 May 2015 18:12:37 +0000 Content-Type: text/plain; charset=ISO-8859-1 X-Received-Bytes: 2519 X-Received-Body-CRC: 2606526897 Xref: news.eternal-september.org comp.lang.ada:26037 Date: 2015-05-28T11:12:35-07:00 List-Id: On Thursday, May 28, 2015 at 7:52:55 PM UTC+2, Simon Wright wrote: > > I have been accused of terseness, sorry It is an occupational disease, ask my wife. > This is a Ravenscar runtime; the C interrupt handler has to invoke the > Ada handler, which was registered by the Ada runtime when it saw a PO > like > > protected Button > with > Interrupt_Priority => System.Interrupt_Priority'First > is > entry Wait_For_Trigger; > private > Triggered : Boolean := False; > procedure Handler; > pragma Attach_Handler (Handler, Ada.Interrupts.Names.EXTI0_IRQ); > end Button; > > and I started timing in Button.Handler. > > The corresponding task called Button.Wait_For_Trigger and I ended timing > immediately on return. Thanks, I think I remember coming to 5 usecs from glancing through the code, so it is even worse than that. According to the gnat ravenscar profile they need that extra code layer to do things with locks and threads, but I could not tell you what anymore. I just cut my losses as explained above. Here is the link to Matteo's page with the research papers on the subject. http://inf.ethz.ch/personal/corti/ cheers, j.