1-- C9A009G.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 MASTER ABORTED WITH SUBTASKS IN AN ENTRY CALL BECOMES 26-- COMPLETED, BUT NOT TERMINATED, BEFORE THE END OF THE RENDEZVOUS. 27 28-- JEAN-PIERRE ROSEN 16-MAR-1984 29-- JBG 6/1/84 30-- PWN 11/30/94 REMOVED PRAGMA PRIORITY INSTANCES FOR ADA 9X. 31 32WITH REPORT,SYSTEM; 33USE REPORT,SYSTEM; 34PROCEDURE C9A009G IS 35 36 37 TASK BLOCKING IS 38 ENTRY START; 39 ENTRY STOP; 40 ENTRY RESTART; 41 ENTRY NO_CALL; 42 END BLOCKING; 43 44 TASK BODY BLOCKING IS 45 BEGIN 46 SELECT 47 ACCEPT STOP DO 48 ACCEPT START; 49 ACCEPT RESTART; 50 END; 51 OR TERMINATE; 52 END SELECT; 53 END; 54 55BEGIN 56 57 TEST("C9A009G", "MASTER COMPLETED BUT NOT TERMINATED"); 58 59 DECLARE -- T1 ABORTED WHILE DEPENDENT TASK IN RENDEVOUS 9C? 60 61 TASK T1 IS 62 ENTRY LOCK; 63 END T1; 64 65 TASK BODY T1 IS 66 TASK T2; 67 68 TASK BODY T2 IS 69 BEGIN 70 BLOCKING.STOP; 71 FAILED ("T2 NOT ABORTED"); 72 END; 73 BEGIN 74 BLOCKING.NO_CALL; -- WILL DEADLOCK UNTIL ABORT 75 END T1; 76 77 BEGIN 78 BLOCKING.START; 79 ABORT T1; 80 81 IF T1'CALLABLE THEN 82 FAILED("T1 STILL CALLABLE - 2"); 83 END IF; 84 85 IF T1'TERMINATED THEN -- T1'S DEPENDENT TASK, T2, STILL IN 86 -- RENDEVOUS 87 FAILED("T1 PREMATURELY TERMINATED - 2"); 88 END IF; 89 90 BLOCKING.RESTART; 91 END; 92 93 RESULT; 94 95END C9A009G; 96