comp.lang.ada
 help / color / mirror / Atom feed
* Re: Propagation of exceptions raised in tasks
@ 1986-06-10 17:22 Sigurd Meldal
  0 siblings, 0 replies; only message in thread
From: Sigurd Meldal @ 1986-06-10 17:22 UTC (permalink / raw)


Ben Brosgol writes
> The problems with asynchronous exceptions are why exceptions do not propagate
> out of tasks.  That is, there is no way of knowing where the parent task
> is when the child task raises the exception.  Asynchronous exception raising
> would be an unreliable and hard to implement means of synchronization.  So,
> sorry about the lack of symmetry between tasks and other units with
> respect to exception propagation, but tasks are different in an essential way
> here.

However, there is at least one well-defined point to which an exception
raised in a task could be propagated. Since a block statement, task
etc. which has dependent tasks is not terminated unless all dependent
tasks are completed, we have a synchronization point at the end of this
master (LRM 9.4). One might lay down the rule that an exception
propagated out of a task is handled by a handler of the direct
master of the task raising the exception, in effect interrupting the
master. One would probably have to insist that the propagation
of an exception out of a task kills all tasks dependent on the master
handling the exception, a rather heavy-handed treatment if
synchronization is the issue, but reasonable if exceptions really are
exceptional and are treated as such.


Sigurd Meldal

Hard mail: Institute of Informatics    	| ARPA: sigurd@oslo-vax.arpa
	   University of Oslo		|	
	   pob. 1080 Blindern		|
	   N - 0316 Oslo 3		|
	   Norway.			|

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1986-06-10 17:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1986-06-10 17:22 Propagation of exceptions raised in tasks Sigurd Meldal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox