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.7 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!philabs!cmcl2!seismo!mcvax!cernvax!frigo From: frigo@cernvax.UUCP (frigo) Newsgroups: net.lang.ada Subject: Propagation of exceptions raised within tasks Message-ID: <325@cernvax.UUCP> Date: Mon, 2-Jun-86 12:16:03 EDT Article-I.D.: cernvax.325 Posted: Mon Jun 2 12:16:03 1986 Date-Received: Wed, 4-Jun-86 07:51:59 EDT Reply-To: frigo@cernvax.UUCP ( G. Vittorio FRIGO) Organization: CERN, Geneva/Switzerland List-Id: Re: Propagation of exceptions from tasks Can anyone help me with this problem? It must e[Dbe a programming error, but I can't find it... The main procedure instantiates a package TASK_PAK, generic on the number of tasks to be created. TASK_PAK declares an array of records containing each a task component. The task body is S[Dseparate(TASK_PAK). Each task has an exception handler of the form when OTHERS => raise TASK_CH[DRASHED; After starting all the tasks (they have an entry START) the main procdu[D[Dedure goes in a loop in which it performs a selective entry call to another task[D[D[D[D[D[D[D[D[D[D[D[D[D[CANOTHER task. The main procedure loop looks like this: begin loop select KEYBOARD.WAIT_FOR_SHUTDW[DOWN; ... exit; else delay 1 * SECS; end loop; [Dexception when TASK_CRASHED => ... end; Usin[D[D[D[DUsing the VAX/Ada de[D[D[D[D[D[D[D[D[D[Ddebugger under VAX/VMS, I can see the exception raisd[Ded in one of the task being intercepted by the task excepion handler and raised again as TASK_CRASHED. However, the main program stays de[D[DDELAYed on the selective entry call, and its exception handler is not executed. Why??? -- G. Vittorio FRIGO, C.E.R.N., CH - 1211 Geneva 23, Switzerland