aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/requeue1.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gnat.dg/requeue1.adb')
-rw-r--r--gcc/testsuite/gnat.dg/requeue1.adb51
1 files changed, 51 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/requeue1.adb b/gcc/testsuite/gnat.dg/requeue1.adb
new file mode 100644
index 00000000000..f7902966b56
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/requeue1.adb
@@ -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;