27 lines
680 B
Ada
27 lines
680 B
Ada
with Ada.Text_Io; use Ada.Text_Io;
|
|
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
|
|
|
|
package body Synchronous_Concurrent is
|
|
|
|
task body Printer is
|
|
Num_Iter : Natural := 0;
|
|
Line : Unbounded_String;
|
|
begin
|
|
loop
|
|
select
|
|
accept Put(Item : in String) do
|
|
Line := To_Unbounded_String(Item);
|
|
end Put;
|
|
Put_Line(To_String(Line));
|
|
Num_Iter := Num_Iter + 1;
|
|
or
|
|
accept Get_Count(Count : out Natural) do
|
|
Count := Num_Iter;
|
|
end Get_Count;
|
|
or terminate;
|
|
end select;
|
|
end loop;
|
|
end Printer;
|
|
|
|
end Synchronous_Concurrent;
|