comp.lang.ada
 help / color / mirror / Atom feed
From: Adam Beneschan <adam@irvine.com>
Subject: Re: Tasks reinitializing
Date: Thu, 17 Sep 2009 14:42:19 -0700 (PDT)
Date: 2009-09-17T14:42:19-07:00	[thread overview]
Message-ID: <77eaa11a-79c8-43ff-95d5-0e707a445369@u16g2000pru.googlegroups.com> (raw)
In-Reply-To: 0bf2270c-6998-41f1-9895-b545026f312e@o21g2000vbl.googlegroups.com

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.

                                       -- Adam



  reply	other threads:[~2009-09-17 21:42 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 [this message]
2009-09-17 22:39   ` Anh Vo
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