今書いてみたヘボサンプルを貼ってみるテスト。
with Ada.Text_IO;
procedure Test is
 task type A_Task is
  entry Setup(Message: in String);
  entry Join;
 end A_Task;
 task body A_Task is
 begin
  Ada.Text_IO.Put_Line("* start!");
  accept Setup(Message: in String) do
   Ada.Text_IO.Put("* "); Ada.Text_IO.Put(Message); Ada.Text_IO.Put_Line("!");
  end Setup;
  loop
   select accept Join do Ada.Text_IO.Put_Line("* exit!"); end Join; abort A_Task;
   else Ada.Text_IO.Put("#"); delay 0.1;
   end select;
  end loop;
 end A_Task;
 type A_Access is access A_Task;
 A: A_Access;
begin
 Ada.Text_IO.Put_Line("go!"); A := new A_Task; A.Setup("setup");
 delay 1.0; A.Join; Ada.Text_IO.Put_Line("end!");
end Test;