parent
0f35a72c2a
commit
e4170021a9
|
@ -0,0 +1,51 @@
|
|||
-- { dg-do run }
|
||||
|
||||
with Ada.Text_Io; use Ada.Text_Io;
|
||||
|
||||
procedure requeue1 is
|
||||
|
||||
protected P is
|
||||
entry Requeue_Without_Abort;
|
||||
entry Queue_Without;
|
||||
procedure Open;
|
||||
private
|
||||
Opened: Boolean := False;
|
||||
end P;
|
||||
|
||||
protected body P is
|
||||
entry Requeue_Without_Abort when True is
|
||||
begin
|
||||
-- BUG: after this requeue no time out of the call should be possible
|
||||
requeue Queue_Without;
|
||||
end Requeue_Without_Abort;
|
||||
|
||||
entry Queue_Without when Opened is
|
||||
begin
|
||||
Opened := False;
|
||||
end Queue_Without;
|
||||
|
||||
procedure Open is
|
||||
begin
|
||||
Opened := True;
|
||||
end Open;
|
||||
end P;
|
||||
|
||||
-- Test of timed entry call to an entry with requeue without abort
|
||||
task T_Without;
|
||||
task body T_Without is
|
||||
begin
|
||||
select
|
||||
P.Requeue_Without_Abort;
|
||||
or
|
||||
delay 1.0;
|
||||
Put_Line("failed");
|
||||
end select;
|
||||
|
||||
exception
|
||||
when others => Put_Line ("failed");
|
||||
end T_Without;
|
||||
|
||||
begin
|
||||
delay 3.0;
|
||||
P.Open;
|
||||
end;
|
Loading…
Reference in New Issue