----------------------------------------------------------------------
-- Demo: Anzahl tasks
----------------------------------------------------------------------

with Stringpack, Ada.Calendar;
use Stringpack, Ada.Calendar;
procedure Task_Nr_Demo is

   N: Natural;
   Start_Work, End_Work: Time;

   task type T is
      entry Start;
      entry Finish;
   end T;

   task body T is
   begin
      accept Start;
      accept Finish;
   end T;

begin
   Print("give natural");
   N := Getint;
   Start_Work := Clock;
   declare
      Ts: array(1..N) of T;
   begin
      End_Work := Clock;  --for declare tasks
      Print("time spent on decl= " & Float(Ada.Calendar."-"(End_Work, Start_Work)));
      for I in Ts'Range loop Ts(I).Start; end loop;
      for I in Ts'Range loop Ts(I).Finish; end loop;
   end;
   End_Work := Clock;     --for everything
   Print("time spent on everything= " & Float(Ada.Calendar."-"(End_Work, Start_Work)));
end Task_Nr_Demo;
