DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 3763 (0xeb3) Types: TextFile Names: »B«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2 └─ ⟦77aa8350c⟧ »DATA« └─⟦f794ecd1d⟧ └─⟦24d1ddd49⟧ └─⟦this⟧
-- The use of this system is subject to the software license terms and -- conditions agreed upon between Rational and the Customer. -- -- Copyright 1988 by Rational. -- -- RESTRICTED RIGHTS LEGEND -- -- Use, duplication, or disclosure by the Government is subject to -- restrictions as set forth in subdivision (b)(3)(ii) of the Rights in -- Technical Data and Computer Software clause at 52.227-7013. -- -- -- Rational -- 3320 Scott Boulevard -- Santa Clara, California 95054-3197 -- -- PROPRIETARY AND CONFIDENTIAL INFORMATION OF RATIONAL; -- USE OR COPYING WITHOUT EXPRESS WRITTEN AUTHORIZATION -- IS STRICTLY PROHIBITED. THIS MATERIAL IS PROTECTED AS -- AN UNPUBLISHED WORK UNDER THE U.S. COPYRIGHT ACT OF -- 1976. CREATED 1988. ALL RIGHTS RESERVED. -- -- separate (Task_Management) package body Intra_Runtime is pragma Suppress_All; procedure Set_Exception (To_Value : Exceptions.Name) is pragma Routine_Number (Runtime_Ids.Internal); Current_Task : constant Task_Id := Get_Current_Task_And_Acquire_Lock; begin -- if Debug_Mode then -- Debugging.Put_Message ("Entered Set_Exception"); -- end if; if Current_Task.Action_State (Abnormal) then Current_Task.Exception_Id := null; else Current_Task.Exception_Id := To_Value; end if; Release_Lock; end Set_Exception; function Get_Exception_And_Clear_Exception_Pending_Flag return Exceptions.Name is pragma Routine_Number (Runtime_Ids.Internal); Current_Task : constant Task_Id := Get_Current_Task_And_Acquire_Lock; Result : Exceptions.Name := Current_Task.Exception_Id; begin -- if Debug_Mode then -- Debugging.Put_Message -- ("Entered Get_Exception_And_Clear_Exception_Pending_Flag"); -- end if; Current_Task.Action_State (Exception_Pending) := False; Release_Lock; return Result; end Get_Exception_And_Clear_Exception_Pending_Flag; procedure Finalize is pragma Routine_Number (Runtime_Ids.Internal); begin Root_Task.Action_State (Abnormal) := False; Root_Task.Action_State (Exception_Pending) := False; Termination_And_Abortion.Await_Dependents; Storage_Manager.Free_Queues (Root_Task.Queues, Current_Task => null); end Finalize; procedure Handle_Signal (Signal_Code : Integer) is pragma Routine_Number (Runtime_Ids.Internal); Abort_Signal_Code : constant := 2; begin -- If the signal is a program termination signal (^E), then -- want to abort the main program (i.e. root_task_id). Tentatively, -- it has been decided that this will be done by invoking a new -- serialization operation. If the lock is available, then this -- operation would acquire the lock, perform the abortion, and -- release the lock. If the lock is not available, then a bit would -- be set and the abortion would occur the next time that the lock -- is released (as part of the release operation). It is not -- clear what operations (e.g. output) are Ok in a signal intercept -- routine. if Signal_Code = Abort_Signal_Code then Runtime_Error.Issue (Runtime_Error.Values. Abort_Signal_Received_By_Program); Abort_Main_Program_Flag := True; end if; end Handle_Signal; end Intra_Runtime; pragma Runtime_Unit (Unit_Number => Runtime_Ids.Runtime_Compunit, Elab_Routine_Number => Runtime_Ids.Internal);