comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Problem with task component
Date: Wed, 19 Sep 2012 20:48:03 +0200
Date: 2012-09-19T20:48:03+02:00	[thread overview]
Message-ID: <1667b8e2qt7ei$.1gg1h3hrp9amz$.dlg@40tude.net> (raw)
In-Reply-To: m2ehlx50vk.fsf@pushface.org

On Wed, 19 Sep 2012 19:22:07 +0100, Simon Wright wrote:

> If a Limited_Controlled type has a component of a task type, is it wrong
> to call an entry of the task from Initialize?

Right, this is mandated by 7.6(12), because the alternative is much worse,
in presence of class-wide access discriminant to the container, which most
people want.

The simple rule is that you should never ever have task components which
you need to communicate to upon initialization and/or finalization.

Always use pointers to tasks. But doing so, you should be extremely careful
preventing dispatch in the task body during these actions. Which is the
rationale for 7.6(12).

P.S. I am afraid that all my rants about construction/destruction issues in
Ada were in vain.

P.P.S. The issue with task components falls into the category "class-wide
constructor." Class initialization/finalization is the earliest/latest time
when it is type-safe to communicate with a task that dispatches in its
body.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2012-09-19 18:48 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-19 18:22 Problem with task component Simon Wright
2012-09-19 18:48 ` Dmitry A. Kazakov [this message]
2012-09-19 20:40   ` Simon Wright
2012-09-19 21:11     ` Dmitry A. Kazakov
2012-09-19 21:48       ` Simon Wright
2012-09-24  5:28         ` J-P. Rosen
2012-09-24  8:23           ` Simon Wright
2012-09-24 13:37             ` J-P. Rosen
2012-09-24 14:17               ` Simon Wright
2012-09-24 17:53               ` Robert A Duff
2012-09-24 20:40                 ` J-P. Rosen
2012-09-24 15:44             ` Adam Beneschan
2012-09-24 16:13               ` AdaMagica
2012-09-24 16:43                 ` Adam Beneschan
2012-09-24 16:29               ` Dmitry A. Kazakov
2012-09-24 20:49                 ` J-P. Rosen
2012-09-25  7:35                   ` Dmitry A. Kazakov
2012-09-25 17:52                     ` J-P. Rosen
2012-09-25 18:35                       ` Dmitry A. Kazakov
2012-09-25 19:22                         ` J-P. Rosen
2012-09-26  7:27                           ` Dmitry A. Kazakov
2012-09-26 11:49                             ` Georg Bauhaus
2012-09-26 14:13                               ` Dmitry A. Kazakov
2012-09-19 19:44 ` Adam Beneschan
replies disabled

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