comp.lang.ada
 help / color / mirror / Atom feed
From: bobduff@world.std.com (Robert A Duff)
Subject: Re: Task question
Date: 1997/10/07
Date: 1997-10-07T00:00:00+00:00	[thread overview]
Message-ID: <EHp4K0.6MF@world.std.com> (raw)
In-Reply-To: 3439D647.7C43@home.com


In article <3439D647.7C43@home.com>, Larry Coon  <lmcoon@home.com> wrote:
>If I do:
>
>   or
>      terminate;
>
>in place of the exit then it knows when the "calling"
>task is done and will terminate the task, but this isn't
>what I want -- the "other stuff" never gets executed.

When a terminate alternative is selected, the task will finalize all its
local variables before actually becoming terminated.  So you can put the
"other stuff" in a Finalize procedure, and have it executed that way.
If the "other stuff" needs access to local data inside the task, you can
put that data inside the Limited_Controlled object, or you can get at it
via an access discriminant.

>I've also tried adding another accept as a signal for
>when the "calling" task is done:
>
>task body x is
>begin
>   loop
>      select
>         accept my_rendezvous (some_data: some_data_type) do
>            -- Rendezvous stuff
>         end my_rendezvous;
>      or
>         accept done do
>            exit;
>         end done;

If you willing to have the extra entry, then do this:
          accept done;
          exit;
So the exit statement comes *after* the accept statement, not inside
it.

>      end select;
>   end loop;
>   -- Now do more stuff.
>end x;

- Bob




  reply	other threads:[~1997-10-07  0:00 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-10-06  0:00 Task question Larry Coon
1997-10-07  0:00 ` Robert A Duff [this message]
1997-10-13  0:00   ` Larry Coon
1997-10-07  0:00 ` Matthew Heaney
1997-10-07  0:00   ` Larry Coon
1997-10-07  0:00 ` David C. Hoos, Sr.
1997-10-07  0:00   ` Steve O'Neill
1997-10-07  0:00   ` Larry Coon
1997-10-08  0:00   ` Tom Moran
1997-10-08  0:00   ` Matthew Heaney
1997-10-30  0:00 ` Balmacara9
  -- strict thread matches above, loose matches on Subject: below --
2007-12-10 22:12 shaunpatterson
2007-12-10 22:29 ` gpriv
2007-12-10 22:51   ` shaunpatterson
2007-12-10 23:13     ` gpriv
2007-12-10 23:40 ` Robert A Duff
2007-12-11  0:43 ` anon
1997-10-16  0:00 Paul Van Gorp
1997-10-19  0:00 ` elaine.waybright
1997-11-01  0:00   ` Matthew Heaney
1997-10-21  0:00 ` Robert A Duff
1996-09-15  0:00 task question Nicolay Belofastow
1996-09-23  0:00 ` Matthew Heaney
     [not found] <204266@QZCOM>
1986-09-26 17:28 ` Task question Matts_Kallioniemi_QZ
replies disabled

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