18 lines
696 B
Ada
18 lines
696 B
Ada
with Ada.Text_IO, Ada.Numerics.Float_Random;
|
|
|
|
procedure Concurrent_Hello is
|
|
type Messages is (Enjoy, Rosetta, Code);
|
|
task type Writer (Message : Messages);
|
|
task body Writer is
|
|
Seed : Ada.Numerics.Float_Random.Generator;
|
|
begin
|
|
Ada.Numerics.Float_Random.Reset (Seed); -- time-dependent, see ARM A.5.2
|
|
delay Duration (Ada.Numerics.Float_Random.Random (Seed));
|
|
Ada.Text_IO.Put_Line (Messages'Image(Message));
|
|
end Writer;
|
|
Taks: array(Messages) of access Writer -- 3 Writer tasks will immediately run
|
|
:= (new Writer(Enjoy), new Writer(Rosetta), new Writer(Code));
|
|
begin
|
|
null; -- the "environment task" doesn't need to do anything
|
|
end Concurrent_Hello;
|