From: "Matthew Heaney" <mheaney@on2.com>
Subject: Re: How to avoid unreferenced objects (mutexes etc)
Date: Tue, 15 Jan 2002 13:57:08 -0500
Date: 2002-01-15T13:57:08-05:00 [thread overview]
Message-ID: <u48ujffufrl77b@corp.supernews.com> (raw)
In-Reply-To: 3C445F34.44697AEF@san.rr.com
"Darren New" <dnew@san.rr.com> wrote in message
news:3C445F34.44697AEF@san.rr.com...
> Matthew Heaney wrote:
> > Now you're free to derive types from T, and bind derived type instances
to
> > a task. Using this idiom obviates the need for extensible task types.
>
> Not really, because there are various operations that may only be
> applied to entries, and various operations that may only appear in task
> bodies and hence your T and its derived types cannot affect it.
But won't this work:
package P is
type T is abstract tagged limited private;
procedure Op (O : in out T) is abstract;
private
task type T_Task_Type (O : access T) is
entry E;
end T_Task_Type;
type T is abstract tagged limited record
T_Task : T_Task_Type (T'Access);
end record;
end P;
Now each instance of T gets its own thread. Types in T'Class have
visibility to the task object (assuming they are declared in children of P).
> As an example, if your task is coded without any guards on the entries,
> there's no way for a child of T to add a guard.
But couldn't a derived type NT extend T to include a protected object (that
implements a semaphore, say), that could be used by types in NT'Class to do
the same thing?
> You can do a fair amount with this idiom, but I wouldn't say it
> *obviates* the need for extensible tasks.
I haven't found a need for extensible tasks.
next prev parent reply other threads:[~2002-01-15 18:57 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-01-11 13:48 How to avoid unreferenced objects (mutexes etc) Dmitry A. Kazakov
2002-01-11 13:52 ` Lutz Donnerhacke
2002-01-11 14:47 ` Robert A Duff
2002-01-11 18:02 ` Jeffrey Carter
2002-01-11 19:40 ` Robert Dewar
2002-01-12 10:18 ` Martin Dowie
2002-01-14 8:54 ` Dmitry A. Kazakov
2002-01-12 1:11 ` Nick Roberts
2002-01-12 22:04 ` Matthew Heaney
2002-01-13 5:45 ` Nick Roberts
2002-01-13 8:21 ` tmoran
2002-01-13 16:12 ` Nick Roberts
2002-01-13 15:08 ` Simon Wright
2002-01-15 17:53 ` Nick Roberts
2002-01-13 16:51 ` Jeffrey Carter
2002-01-14 23:32 ` Matthew Heaney
2002-01-15 8:53 ` Dmitry A. Kazakov
2002-01-14 8:31 ` Jean-Pierre Rosen
2002-01-14 9:42 ` Dmitry A. Kazakov
2002-01-15 15:41 ` Matthew Heaney
2002-01-15 16:18 ` Hyman Rosen
2002-01-15 16:57 ` Darren New
2002-01-15 18:57 ` Matthew Heaney [this message]
2002-01-16 0:57 ` Darren New
2002-01-16 16:35 ` Stephen Leake
2002-01-16 18:07 ` Darren New
2002-01-16 23:18 ` Matthew Heaney
2002-01-16 23:04 ` Matthew Heaney
2002-01-17 0:21 ` Darren New
2002-01-16 15:18 ` Dmitry A. Kazakov
2002-01-15 18:59 ` Nick Roberts
2002-01-16 15:05 ` Dmitry A. Kazakov
2002-01-16 18:30 ` Matthew Heaney
2002-01-17 8:58 ` Dmitry A. Kazakov
2002-01-17 9:19 ` Lutz Donnerhacke
2002-01-17 10:42 ` Dmitry A. Kazakov
2002-01-17 10:55 ` Lutz Donnerhacke
2002-01-17 15:30 ` Dmitry A. Kazakov
2002-01-17 16:29 ` Lutz Donnerhacke
2002-01-16 20:28 ` Robert A Duff
2002-01-17 19:05 ` Nick Roberts
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox