1-- C97201B.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 A CONDITIONAL ENTRY CALL IS NOT ACCEPTED IF THERE IS 26-- ANOTHER TASK QUEUED FOR THE ENTRY. 27 28-- WRG 7/11/86 29-- PWN 09/11/94 REMOVED PRAGMA PRIORITY FOR ADA 9X. 30 31with Impdef; 32WITH REPORT; USE REPORT; 33WITH SYSTEM; USE SYSTEM; 34PROCEDURE C97201B IS 35 36 37BEGIN 38 39 TEST ("C97201B", "CHECK THAT A CONDITIONAL ENTRY CALL IS NOT " & 40 "ACCEPTED IF THERE IS ANOTHER TASK QUEUED " & 41 "FOR THE ENTRY"); 42 43 DECLARE 44 45 TASK T IS 46 ENTRY E; 47 ENTRY SYNCH; 48 ENTRY DONE; 49 END T; 50 51 TASK BODY T IS 52 BEGIN 53 -- ENSURE THAT E HAS BEEN CALLED BEFORE PROCEEDING: 54 WHILE E'COUNT = 0 LOOP 55 DELAY 1.0 * Impdef.One_Second; 56 END LOOP; 57 58 ACCEPT SYNCH; 59 60 SELECT 61 WHEN IDENT_BOOL (FALSE) => 62 ACCEPT E; 63 FAILED ("CLOSED ALTERNATIVE TAKEN"); 64 OR 65 ACCEPT DONE DO 66 IF E'COUNT /= 1 THEN 67 FAILED (NATURAL'IMAGE(E'COUNT) & 68 " CALLS WERE QUEUED FOR ENTRY " & 69 "E OF TASK T"); 70 END IF; 71 END DONE; 72 OR 73 DELAY 1000.0 * Impdef.One_Second; 74 FAILED ("DELAY EXPIRED; E'COUNT =" & 75 NATURAL'IMAGE(E'COUNT) ); 76 END SELECT; 77 78 WHILE E'COUNT > 0 LOOP 79 ACCEPT E; 80 END LOOP; 81 END T; 82 83 TASK AGENT; 84 85 TASK BODY AGENT IS 86 BEGIN 87 T.E; 88 END AGENT; 89 90 BEGIN 91 92 T.SYNCH; 93 94 DELAY 10.0 * Impdef.One_Second; 95 96 SELECT 97 T.E; 98 FAILED ("CONDITIONAL ENTRY CALL ACCEPTED" ); 99 ELSE 100 COMMENT ("ELSE PART EXECUTED"); 101 T.DONE; 102 END SELECT; 103 104 END; 105 106 RESULT; 107 108END C97201B; 109