1-- C93008A.ADA
2
3--                             Grant of Unlimited Rights
4--
5--     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
6--     F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
7--     unlimited rights in the software and documentation contained herein.
8--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making
9--     this public release, the Government intends to confer upon all
10--     recipients unlimited rights  equal to those held by the Government.
11--     These rights include rights to use, duplicate, release or disclose the
12--     released technical data and computer software in whole or in part, in
13--     any manner and for any purpose whatsoever, and to have or permit others
14--     to do so.
15--
16--                                    DISCLAIMER
17--
18--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
19--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
20--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
21--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
22--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
23--     PARTICULAR PURPOSE OF SAID MATERIAL.
24--*
25-- CHECK THAT FOR A TASK CREATED BY AN OBJECT DECLARATION, EXECUTION
26-- DOES NOT PROCEED IN PARALLEL WITH ACTIVATION.
27
28-- R.WILLIAMS 8/20/86
29
30with Impdef;
31WITH REPORT; USE REPORT;
32PROCEDURE C93008A IS
33
34     SUBTYPE ARG IS NATURAL RANGE 0..9;
35     SPYNUMB : NATURAL := 0;
36
37     TASK T IS
38          ENTRY FINIT_POS (DIGT : IN ARG);
39     END T;
40
41     TASK BODY T IS
42     BEGIN
43          LOOP
44               SELECT
45                    ACCEPT FINIT_POS (DIGT : IN ARG) DO
46                         SPYNUMB := 10*SPYNUMB+DIGT;
47                    END FINIT_POS;
48               OR
49                    TERMINATE;
50               END SELECT;
51          END LOOP;
52     END T;
53
54BEGIN
55
56     TEST ("C93008A", "CHECK THAT EXECUTION DOES NOT PROCEED IN  " &
57                      "PARALLEL WITH ACTIVATION OF A TASK CREATED " &
58                      "BY AN OBJECT DECLARATION");
59
60BLOCK:
61     DECLARE
62
63          TASK TYPE TT1;
64
65          TASK TT2;
66
67          T1 : TT1;
68
69          TASK BODY TT1 IS
70               PACKAGE DUMMY IS
71               END DUMMY;
72
73               PACKAGE BODY DUMMY IS
74               BEGIN
75                    DELAY 2.0 * Impdef.One_Second;
76                    T.FINIT_POS(1);
77               END DUMMY;
78          BEGIN
79               NULL;
80          END TT1;
81
82          TASK BODY TT2 IS
83               PACKAGE DUMMY IS
84               END DUMMY;
85
86               PACKAGE BODY DUMMY IS
87               BEGIN
88                    DELAY 2.0 * Impdef.One_Second;
89                    T.FINIT_POS(2);
90               END DUMMY;
91          BEGIN
92               NULL;
93          END TT2;
94
95
96     BEGIN               -- TASKS ACTIVATED NOW.
97
98          IF SPYNUMB = 12 OR SPYNUMB = 21 THEN
99               NULL;
100          ELSE
101               FAILED ("TASKS NOT ACTIVATED PROPERLY - SPYNUMB HAS " &
102                       "ACTUAL VALUE OF: " & INTEGER'IMAGE(SPYNUMB));
103          END IF;
104     END BLOCK;
105
106     RESULT;
107
108END C93008A;
109