comp.lang.ada
 help / color / mirror / Atom feed
From: Anh Vo <anhvofrcaus@gmail.com>
Subject: Re: Tasks reinitializing
Date: Thu, 17 Sep 2009 15:39:38 -0700 (PDT)
Date: 2009-09-17T15:39:38-07:00	[thread overview]
Message-ID: <27127316-ac19-49e0-bb05-1f49ba1a7c4e@v23g2000pro.googlegroups.com> (raw)
In-Reply-To: 77eaa11a-79c8-43ff-95d5-0e707a445369@u16g2000pru.googlegroups.com

On Sep 17, 2:42 pm, Adam Beneschan <a...@irvine.com> wrote:
> On Sep 17, 11:21 am, Pablo <pablit...@gmail.com> wrote:
>
> > How can I reinitialize a task?
> > Say us, I have two cases:
> > A task defined as
> >    task type Task_type is
> >       entry Start;
> >    end Task_type;
> > so the object defined as
> > Init : Init_type;
>
> You mean Init : Task_Type, I presume??
>
> > and inside a procedure, the task is initialized with
> > accept Start;
>
> > and now:
> > 1) In run time, the task is terminated by aborting process (abort
> > Init) before its end, and in the same session, I need to turn it on
> > again, but now from the beginning.
> > 2) In run time, the task is finished by very end, and in the same
> > session, I need to start it again from beginning.
>
> > Please help me!
>
> You'll need to create a new task object.  If you declare an object
>
>    Init : Task_Type;
>
> and it's declared as a local variable inside a procedure Proc1, the
> only way it's going to get reinitialized is if Proc1 exits and starts
> up again.  If Init is declared in a library package, then it's never
> going to happen.
>
> You may want to try using an access:
>
>    type Task_Type_Acc is access Task_Type;
>
>    Init : Task_Type_Acc := new Task_Type;
>
> When you allocate a new Task_Type with "new", that will start a task
> up.  If, after the task finishes, you want to start a new one, you can
> assign
>
>    Init := new Task_Type;
>
> at any point, and it will start a new task.  I think that's probably
> what you want.

Just to make it complete, I would recommend deallocating memory,
before starting a new task, to prevent memory leaks.

Anh Vo




  reply	other threads:[~2009-09-17 22:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-17 18:21 Tasks reinitializing Pablo
2009-09-17 21:42 ` Adam Beneschan
2009-09-17 22:39   ` Anh Vo [this message]
2009-09-18  5:44     ` sjw
2009-09-18  7:57 ` Dmitry A. Kazakov
replies disabled

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