-- Tsk_1 : arrive mais n'attend pas
-- Tsk_1 : trop long
-- Tsk_2 : arrive et attend 1 seconde
-- Tsk_2 : trop long
with Ada.Text_IO;
use Ada.Text_IO;
procedure Essai11 is
task TskRDV is
entry RDV;
end TskRDV;
task body TskRDV is
OK : Boolean := False;
begin -- TskRDV
delay (3.0);
select
accept RDV;
or
terminate;
end select;
end TskRDV;
task Tsk_1;
task Tsk_2;
task body Tsk_1 is
begin -- Tsk_1
Put_Line ("Tsk_1 : arrive
mais n'attend pas");
select
TskRDV.RDV;
Put_Line ("Tsk_1 : c'est OK");
else
Put_Line ("Tsk_1 : trop long");
end select;
end Tsk_1;
task body Tsk_2 is
begin -- Tsk_2
Put_Line ("Tsk_2 : arrive
et attend 1 seconde");
select
TskRDV.RDV;
Put_Line ("Tsk_2 : c'est OK");
or
delay 1.0;
Put_Line ("Tsk_2 : trop long");
end select;
end Tsk_2;
begin -- Essai11
null;
exception
when Tasking_Error =>
Put_Line ("Tasking_Error
detectee");
end Essai11;