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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1096a7986b560ad6 X-Google-Attributes: gid103376,public From: nabbasi@earthlink.net.NOSPAM Subject: Re: In Exception ? Date: 1998/04/07 Message-ID: <6gcjru$7im@drn.newsguy.com>#1/1 X-Deja-AN: 341635700 References: <35214b7a.0@news.profinet.at> <6g7fpc$l08$1@usenet.rational.com> Organization: Newsguy News Service [http://www.newsguy.com] Newsgroups: comp.lang.ada Date: 1998-04-07T00:00:00+00:00 List-Id: In article <6g7fpc$l08$1@usenet.rational.com>, "Corey says... > > >>Gerhard Auinger wrote in message <35214b7a.0@news.profinet.at>... >>My problem: I want to establish a routine that is called out of normal >>flow, or out of an exception handler. How can I get the knowledge whether I >>am 'in' an exception (means in its processing) or not. Is there a sort of >>function than can be coded like >> >> if in_exception_handler then >> ... >> else >> ... >> end if; > >Ada95 doesn't provide such a feature, I'm afraid. So you'll need a more >complicated >solution. > >If you aren't using more than one task, then a simple global variable >counter >which is incremented inside the handler and decremented after the handler >should suffice. this takes care of synch. between tasks. but what about interrupts? an interrupt could occur anytime, and it also could establish an exception, and could end up in it , so this would lead to a race condition also on the global variable. I have not done this, but I assume one could attach an ada procedure to an interrupt, or in VMS language, an AST. similar synch. issues will show up between an interrupt and non-interrupt mode code flow, as between different tasks. I think Ada should have a function that tells one if they are in an exception handler or not. I know this is platform specific stuff, but that is the whole idea of using Ada, to hide platform specific things from the user. I remember that PLIon VMS had such a call in its run-time library, I could be wrong though. my 2 cents. Nasser