task body TskServeur is
task type T_TskSlave
is
entry Service (IdSlave : out Task_ID);
end T_TskSlave;
task body T_TskSlave
is
begin -- T_TskSlave
accept Service (IdSlave : out Task_ID) do
IdSlave := Current_Task;
delay 1.0; -- simule le service
end Service;
end T_TskSlave;
type T_PtrTskSlave is
access T_TskSlave;
Ptr : T_PtrTskSlave;
begin -- TskServeur
loop
select
accept Service (IdSlave : out Task_ID) do
Ptr := new T_TskSlave;
requeue Ptr.Service;
end Service;
or
terminate;
end select;
end loop;
end TskServeur;
begin -- P_Serveur
null;
end P_Serveur;