comp.lang.ada
 help / color / mirror / Atom feed
From: Jean-Pierre Rosen <rosen@adalog.fr>
Subject: Re: task synchronization and activation
Date: Mon, 21 Feb 2005 09:50:59 +0100
Date: 2005-02-21T09:50:59+01:00	[thread overview]
Message-ID: <id7cvc.igh.ln@hunter.axlog.fr> (raw)
In-Reply-To: <5f59677c.0502190711.1d6d2492@posting.google.com>

Evangelista Sami a �crit :
> Hello all
> 
> Why does a task have to wait that all the tasks it created are
> activated before
> executing? I am thinking of point 9.2.5 of the RM :
> 
> "The task that created the new tasks and initiated their activations
> (the activator) is blocked until all of these activations complete
> (successfully or not)."
> 
> I can understand that a master has to wait for the tasks he created
> before finalizing since in the other case it could "free" some memory
> needed by its children.
> But i cannot see why this synchronisation after activation is
> necessary. What is the technical reason?
> 
It has to do with exceptions at elaboration.

When a task is started, it first elaborates its declarative part. If 
exceptions are raised during this elaboration, they cannot be handled by 
the task itself, therefore it is necessary to notify *someone*, and the 
obvious "someone" is the activator. However, we don't want to have 
asynchronous exceptions, therefore the activator has to wait that all 
subtasks are (correctly) activated.

Differently said: when an activator reaches the first statement after 
the begin, it is guaranteed that all subtasks have been correctly 
activated; otherwise, Tasking_Error is raised after begin (so it can be 
handled locally), but before the first statement.

-- 
---------------------------------------------------------
            J-P. Rosen (rosen@adalog.fr)
Visit Adalog's web site at http://www.adalog.fr



  parent reply	other threads:[~2005-02-21  8:50 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-19 15:11 task synchronization and activation Evangelista Sami
2005-02-19 16:11 ` Martin Krischik
2005-02-19 18:11   ` Ed Falis
2005-02-19 20:05   ` Robert A Duff
2005-02-20 10:47     ` Martin Krischik
2005-02-21 19:25     ` Dmitry A. Kazakov
2005-02-21  8:50 ` Jean-Pierre Rosen [this message]
2005-02-21 21:55   ` Robert A Duff
2005-02-22  0:01     ` Randy Brukardt
2005-02-22  7:17     ` Jean-Pierre Rosen
2005-02-23  2:24       ` Robert A Duff
2005-02-23  7:58         ` Martin Krischik
replies disabled

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