comp.lang.ada
 help / color / mirror / Atom feed
From: ssh9614@hotmail.com (Bj?rn)
Subject: Finalization of a record containing a task
Date: 16 Feb 2005 12:35:30 -0800
Date: 2005-02-16T12:35:30-08:00	[thread overview]
Message-ID: <d56673df.0502161235.c69cc50@posting.google.com> (raw)

I'm trying to implement a form of self modifying ADT, containing an
active task.

I would prefer that the user of the ADT not need to do any "extra"
operations on the ADT when the user is finished with it, rather have
the task terminate automatically when the type goes out of scope.

I do not see how I can manage this since the ADT does not seem to
finalize as long as the tasks have not terminated.

How can I solve this? Should I rather try a different approach?

Currently it looks something like this:

package PKG is
   type T_ADT is new Limited_Controlled with private
   ...
private
   task type T_Worker is
      entry Start;
      entry Stop;
      ...
   end task;
   
   procedure Initialize (T : in out T_ADT);
   procedure Finalize (T : in out T_ADT);

   type T_ADT is new Limited_Controlled with
      record
         X : Some_Type;
         Worker : T_Worker;
      end record;
end PKG;

package body PKG is
   task T_Worker is
      {Inner task of T_Worker}
   begin
      loop
         select
            accept Start;
         or
            accept Stop;
         or
            ...
         or
            delay until Some_Time;
         end select;
      end loop;
end PKG;

Best regards,
Bj�rn



             reply	other threads:[~2005-02-16 20:35 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-16 20:35 Bj?rn [this message]
2005-02-16 20:49 ` Finalization of a record containing a task Stephen Leake
2005-02-16 21:20   ` Adrien Plisson
2005-02-16 22:09     ` Robert A Duff
2005-02-17  8:24       ` Adrien Plisson
2005-02-18  0:17         ` Robert A Duff
2005-02-17  9:13     ` Dmitry A. Kazakov
2005-02-18  0:13       ` Robert A Duff
2005-02-18  2:34         ` Randy Brukardt
2005-02-18 11:27         ` Dmitry A. Kazakov
2005-02-16 22:08   ` Robert A Duff
2005-02-21 13:20     ` Craig Carey
2005-02-21 21:41       ` Robert A Duff
2005-02-22  0:15         ` Randy Brukardt
2005-02-17 17:50   ` Bj?rn
replies disabled

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