From: Simon Wright <simon@pushface.org>
Subject: Re: confusion about message passing between the tasks
Date: Sat, 25 Oct 2014 08:58:23 +0100
Date: 2014-10-25T08:58:23+01:00 [thread overview]
Message-ID: <lytx2s8tsw.fsf@pushface.org> (raw)
In-Reply-To: d377c4f7-8c89-4b60-907d-f9151ae02721@googlegroups.com
compguy45@gmail.com writes:
> I am really kind of lost with tasks and message passing. Would anyone
> show me an example where 2 tasks would be created by environment
> task...each task has same body and one entry...so for example one task
> waits at entry while the other one completes the entry block and on
> the exit lets waiting task that's its done.
with Ada.Text_IO; use Ada.Text_IO;
procedure Strib is
type T;
type T_Access is access T;
task type T (Next : T_Access) is
entry Start (Message : Integer);
end T;
task body T is
Data : Integer;
begin
Put_Line ("waiting");
accept Start (Message : Integer) do
Data := Message;
end Start;
Put_Line ("working with " & Integer'Image (Data));
delay 1.0;
if Next /= null then
Put_Line ("kicking off next task");
Next.Start (Data + 1);
else
Put_Line ("no next task");
end if;
Put_Line ("done");
end T;
Tasks : array (1 .. 2) of T_Access;
begin
-- we have to create the tasks in reverse order, because the first
-- task needs to be able to reach the second task.
Tasks (2) := new T (Next => null);
Tasks (1) := new T (Next => Tasks (2));
Tasks (1).Start (42);
end Strib;
next prev parent reply other threads:[~2014-10-25 7:58 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-24 16:44 confusion about message passing between the tasks compguy45
2014-10-24 18:39 ` Ludovic Brenta
2014-10-25 1:51 ` compguy45
2014-10-25 7:13 ` Ludovic Brenta
2014-10-24 23:49 ` Stribor40
2014-10-25 7:03 ` Ludovic Brenta
2014-10-25 7:58 ` Simon Wright [this message]
2014-10-25 13:01 ` compguy45
2014-10-25 14:11 ` Simon Wright
2014-10-25 17:25 ` Dennis Lee Bieber
2014-10-25 17:54 ` Jeffrey Carter
2014-10-25 22:23 ` Robert A Duff
2014-10-25 23:26 ` compguy45
2014-10-26 4:50 ` Dennis Lee Bieber
2014-10-26 10:20 ` Georg Bauhaus
2014-10-26 5:37 ` J-P. Rosen
2014-10-26 8:14 ` Pascal Obry
2014-10-26 15:47 ` J-P. Rosen
2014-10-26 20:27 ` Robert A Duff
2014-10-26 20:31 ` Robert A Duff
2014-10-26 20:36 ` Jeffrey Carter
2014-10-26 22:27 ` Robert A Duff
2014-10-26 23:23 ` Jeffrey Carter
2014-10-27 0:46 ` Robert A Duff
2014-10-27 2:18 ` Jeffrey Carter
2014-10-27 7:51 ` J-P. Rosen
2014-10-27 7:44 ` J-P. Rosen
2014-10-26 20:42 ` Dmitry A. Kazakov
2014-10-26 21:15 ` Brad Moore
2014-10-27 9:22 ` Dmitry A. Kazakov
2014-10-26 22:20 ` Robert A Duff
2014-10-27 7:40 ` J-P. Rosen
2014-10-25 23:42 ` compguy45
2014-10-25 23:55 ` compguy45
2014-10-26 0:24 ` Jeffrey Carter
2014-10-26 0:41 ` compguy45
2014-10-26 11:30 ` Brian Drummond
2014-10-26 15:40 ` Simon Wright
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox