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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,36d6034920556837 X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!feeder.news-service.com!newsfeed.straub-nv.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.arcor.de!newsspool3.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Wed, 15 Jul 2009 21:35:20 +0200 From: Georg Bauhaus Reply-To: rm.tsoh+bauhaus@maps.futureapps.de User-Agent: Thunderbird 2.0.0.22 (Windows/20090605) MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Asynchronous abort not working in Debian GNAT? References: <4a5e20ac$0$6254$4f793bc4@news.tdc.fi> In-Reply-To: <4a5e20ac$0$6254$4f793bc4@news.tdc.fi> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-ID: <4a5e2f7a$0$31872$9b4e6d93@newsspool3.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 15 Jul 2009 21:35:22 CEST NNTP-Posting-Host: 1151fa8a.newsspool3.arcor-online.net X-Trace: DXC=UMLIc_49eS^<<0iRN7DLEQMcF=Q^Z^V3X4Fo<]lROoRQ^YC2XCjHcbYVFX03I1?JbPA:ho7QcPOVSJhi1O5AS2N]mY]] Niklas Holsti wrote: > Under Debian Sarge on Intel, gnat 3.15p, I implemented a time-out for an > application using the canonical construct: > > select > delay Time_Out; > Error (...); > then abort > Processing (...); > end select; > > After upgrading to Debian Lenny, FSF GNAT 4.3.2, it appears that this no > longer works; instead, Processing completes without being aborted, > unless Processing does something that probably invokes scheduling, for > example "delay 0.0" or Text_IO output to the console. FWIW, with Windows GNAT GPL 2007 (gcc 4.1.3), it doesn't abort either, with Ada.Text_IO; procedure Time_Out is procedure Processing is type T is mod 2**16; X: T; begin Very_Busy: loop X := T'Succ(X); end loop Very_Busy; end Processing; procedure Error(Message: String) is use Ada; begin Text_IO.Put_Line(Text_Io.Current_Error, MEssage); end Error; begin select delay 10.0; Error("over"); then abort Processing; end select; end Time_Out;