DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦7898b3eb0⟧ Ada Source

    Length: 41984 (0xa400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Xlbit_Library3, seg_004f30

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Text_Io;

with Xlbt_Arithmetic;  
use Xlbt_Arithmetic;  
with Xlbt_Basic3;  
use Xlbt_Basic3;  
with Xlbt_Display3;  
use Xlbt_Display3;  
with Xlbt_Proc_Var;  
use Xlbt_Proc_Var;

with Xlbit_Library4;  
use Xlbit_Library4;

with Xlbip_String_Map_Generic;

with Xlbmt_Network_Types;  
use Xlbmt_Network_Types;  
with Xlbmt_Parameters;  
use Xlbmt_Parameters;

with Xlbmp_Error_Log;  
use Xlbmp_Error_Log;

package body Xlbit_Library3 is
------------------------------------------------------------------------------
-- X Library Internal State
--
-- Xlbit_Library3 - Library State - No packages have any non-constant state
-- other than this set of packages.
------------------------------------------------------------------------------
-- Copyright 1989 - 1991 by Rational, Santa Clara, California.
-- Copyright 1985 - 1989 by the Massachusetts Institute of Technology
--
--                  All Rights Reserved.
--
-- Permission to use, copy, modify, and distribute this software and its
-- documentation for any purpose and without fee is hereby granted,
-- provided that the above copyright notice(s) appear in all copies and that
-- both that copyright notice(s) and this permission notice appear in
-- supporting documentation, and that the names of MIT or Rational not be
-- used in advertising or publicity pertaining to distribution of the software
-- without specific, written prior permission.
--
-- MIT and Rational disclaim all warranties with regard to this software,
-- including all implied warranties of merchantability and fitness, in no
-- event shall MIT or Rational be liable for any special, indirect or
-- consequential damages or any damages whatsoever resulting from loss of use,
-- data or profits, whether in an action of contract, negligence or other
-- tortious action, arising out of or in connection with the use or performance
-- of this software.
------------------------------------------------------------------------------
-- *****************************************************************************
-- * Date      - /Name/ Comment
-- *
-- *  6-NOV-90 - /GEB/ Implement the new multitasking protection scheme for
-- *           -  library state.
-- *****************************************************************************

--/ if Multitask_Locking then
    -- Multi-tasking capability *has* been turned on.
--/ else
--//        -- Multi-tasking capability has *not* been turned on.
--/ end if;

--\x0c
    ------------------------------------------------------------------------------
-- Protected Global Library State
------------------------------------------------------------------------------

    type X_Library_State is  
        record

            Authorization_Name : U_Char_List := None_U_Char_List;  
            Authorization_Data : U_Char_List := None_U_Char_List;
            ----Data used when connecting to a server.  Used to authorize
            --  access.  Values of None mean that we use the default
            --  mechanisms and default data.  Typically this is the "xhost"
            --  method.

            Debug : Boolean := False;
            ----Turn on special debug/synchronization code.

            Report_Error : X_Procedure_Variable := None_X_Procedure_Variable;
            ----X_Report_Error.Pv
            ----Report_Error is the lowest level error reporter, and is
            --  called by all default higher level reporters.  This should
            --  not be assumed to be a fatal condition.

            Error : X_Procedure_Variable := None_X_Procedure_Variable;
            ----X_Error_Function.Pv
            ----Error will be called whenever an error event is received.
            --  This is not assumed to be a fatal condition, i.e., it is
            --  acceptable for this procedure to return.  However, Error
            --  should NOT perform any operations (directly or indirectly)
            --  on the DISPLAY.

            Display_Num_Counter : X_Display_Number := 0;
            ----Used to give displays a unique number that can be
            --  used with the RM as "contexts" for display-specific
            --  values that aren't entered into a display-specific database.

            Head_Of_Display_List : X_Display := null;
            ----There are all of the open displays in this X_Library instance.

            Io_Error : X_Procedure_Variable := None_X_Procedure_Variable;
            ----X_Io_Error_Function.Pv
            ----IO_Error will be called if any sort of network error occurs.
            --  This is assumed to be a fatal condition, i.e., IO_Error should
            --  not return.  It should abort the program or raise an exception.

            Quark_Map : X_Rm_Quark_Map.Map;
            ----Map of all known Quarks.
            Next_Quark : X_Rm_Quark := (Id => 1);
            ----Next available quark number
            Resource_Quarks : X_Rm_Quark_Bit_List := None_X_Rm_Quark_Bit_List;
            ----Used by the RM to optimize resource lookup.

--         Rm_Conversion_Error : X_Procedure_Variable := None_X_Procedure_Variable;
--         ----X_Rm_Converter_Error.Pv
--         ----Rm_Conversion_Error is called whenever a conversion routine
--         --  fails.  Presumably the From value is invalid or does not
--         --  map into the To value.
--
--         Rm_No_Converter : X_Procedure_Variable := None_X_Procedure_Variable;
--         ----X_Rm_Converter_Error.Pv
--         ----Rm_No_Converter is called whenever we need to make a conversion
--         --  but there is no routine registered to perform it.
--
--         Rm_Converter_Table : X_Rm_Converter_List := null;
--         ----Cache of all registered RM type conversion routines.

        end record;

    X : X_Library_State;

--\x0c
    --/ if Multitask_Locking then
    task body X_Lib is  
        Seized_Display_List    : Boolean := False;  
        Seized_Quark_Map       : Boolean := False;  
        Seized_Resource_Quarks : Boolean := False;  
    begin  
        loop  
            select
--/ else
--//    package body X_Lib is
--/ end if;

--\x0c
                --/ if Multitask_Locking then
                accept Get_Authorization  
                          (Authorization_Name : out U_Char_List;  
                           Authorization_Data : out U_Char_List) do
--/ else
--//         procedure Get_Authorization (Authorization_Name : out U_Char_List;
--//                                      Authorization_Data : out U_Char_List) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Authorization_Name  - Specifies/Receives the authorization name to use
--  Authorization_Data  - Specifies/Receives the authorization data to use
--
-- Gets/Sets the data used when connecting to a server.  It is used to authorize
-- access to the server.  Values of None_U_Char_List mean that we use the
-- default mechanisms and default data.  Typically this is the "xhost"
-- method.
------------------------------------------------------------------------------

                    Authorization_Name := X.Authorization_Name;  
                    Authorization_Data := X.Authorization_Data;

                end Get_Authorization;

--\x0c
                --/ if Multitask_Locking then
            or  
                accept Set_Authorization (Authorization_Name : U_Char_List;  
                                          Authorization_Data : U_Char_List) do
--/ else
--//         procedure Set_Authorization (Authorization_Name : U_Char_List;
--//                                      Authorization_Data : U_Char_List) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Authorization_Name  - Specifies/Receives the authorization name to use
--  Authorization_Data  - Specifies/Receives the authorization data to use
--
-- Gets/Sets the data used when connecting to a server.  It is used to authorize
-- access to the server.  Values of None_U_Char_List mean that we use the
-- default mechanisms and default data.  Typically this is the "xhost"
-- method.
------------------------------------------------------------------------------

                    X.Authorization_Name := Authorization_Name;  
                    X.Authorization_Data := Authorization_Data;

                end Set_Authorization;

--\x0c
                --/ if Multitask_Locking then
            or  
                accept Get_Debug (On_Off : out Boolean) do
--/ else
--//         procedure get_Debug (On_Off : out Boolean) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  On_Off  - Specifies TRUE to turn synchronization on.
--
-- Turn on/off special debug/synchronization code.  When a new display is
-- opened, it will have synchronization turned on by default if this flag has
-- been previously set to true.
------------------------------------------------------------------------------

                    On_Off := X.Debug;

                end Get_Debug;

--\x0c
                --/ if Multitask_Locking then
            or  
                accept Set_Debug (On_Off : Boolean) do
--/ else
--//         procedure Set_Debug (On_Off : Boolean) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  On_Off  - Specifies TRUE to turn synchronization on.
--
-- Turn on/off special debug/synchronization code.  When a new display is
-- opened, it will have synchronization turned on by default if this flag has
-- been previously set to true.
------------------------------------------------------------------------------

                    X.Debug := On_Off;

                end Set_Debug;

--\x0c
                --/ if Multitask_Locking then
            or  
                accept Add_Display (Display : X_Display) do
--/ else
--//         procedure Add_Display (Display : X_Display) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Display - Specifies the display to affect
--
-- Adds a new display to the library's list of open displays or else removes
-- a display from that list.  This is used to give displays a unique number
-- that can be used with the RM as "contexts" for display-specific
-- values that aren't entered into a display-specific database.
------------------------------------------------------------------------------

                    Display.Next           := X.Head_Of_Display_List;  
                    X.Head_Of_Display_List := Display;  
                    Display.Display_Num    := X.Display_Num_Counter;  
                    X.Display_Num_Counter  := X.Display_Num_Counter + 1;  
                    if X.Display_Num_Counter = X_Display_Number'Last then
                        ----2**32 sequential display connections in one library?  Wow.
                        --  Don't allow 'Last as a valid display number value; the RM
                        --  uses that for a don't-care value.
                        X.Display_Num_Counter := 0;  
                    end if;

                end Add_Display;

--\x0c
                --/ if Multitask_Locking then
            or  
                accept Remove_Display (Display : X_Display) do
--/ else
--//         procedure Remove_Display (Display : X_Display) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Display - Specifies the display to affect
--
-- Adds a new display to the library's list of open displays or else removes
-- a display from that list.  This is used to give dispays a unique number
-- that can be used with the RM as "contexts" for display-specific
-- values that aren't entered into a display-specific database.
------------------------------------------------------------------------------

                    declare  
                        Dp : X_Display;  
                        Cp : X_Display;  
                    begin  
                        if X.Head_Of_Display_List = Display then  
                            X.Head_Of_Display_List := Display.Next;  
                        else  
                            Dp := X.Head_Of_Display_List;  
                            Cp := Dp.Next;  
                            while Cp /= null loop  
                                if Cp = Display then  
                                    Dp.Next := Cp.Next;  
                                    exit;  
                                end if;  
                                Dp := Cp;  
                                Cp := Cp.Next;  
                            end loop;  
                        end if;  
                    end;

                end Remove_Display;

--\x0c
                --/ if Multitask_Locking then
            or  
                accept Get_Report_Error (Proc : out X_Procedure_Variable) do
--/ else
--//         procedure Get_Report_Error (Proc    : out X_Procedure_Variable) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Proc            - Specifies/Receives the procedure to use; a value of
--                      None_X_Procedure_Variable restores the library default
--                      value for this procedure.
--
-- Actaul type of Proc is X_Report_Error.Pv.
--
-- Report_Error is the lowest level error reporter, and is
-- called by all of the default higher level reporters.  It is used to format
-- error messages and to send them to the appropriate file/device/terminal.
-- Messages should not be assumed to be fatal conditions.
------------------------------------------------------------------------------

                    if X.Report_Error /= None_X_Procedure_Variable then  
                        Proc := X.Report_Error;  
                    else  
                        Proc := X_Lib_Default_X_Report_Error;  
                    end if;

                end Get_Report_Error;

--\x0c
                --/ if Multitask_Locking then
            or  
                accept Set_Report_Error (Proc     :     X_Procedure_Variable;  
                                         Old_Proc : out X_Procedure_Variable) do
--/ else
--//         procedure Set_Report_Error (Proc         :     X_Procedure_Variable;
--//                                     Old_Proc     : out X_Procedure_Variable) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Proc            - Specifies/Receives the procedure to use; a value of
--                      None_X_Procedure_Variable restores the library default
--                      value for this procedure.
--  Old_Proc        - Receives the previous procedure setting.
--
-- Actaul type of Proc is X_Report_Error.Pv.
--
-- Report_Error is the lowest level error reporter, and is
-- called by all of the default higher level reporters.  It is used to format
-- error messages and to send them to the appropriate file/device/terminal.
-- Messages should not be assumed to be fatal conditions.
------------------------------------------------------------------------------
                    declare  
                        Old :  
                           X_Procedure_Variable; -- Prevent aliasing problems.
                    begin

                        Old            := X.Report_Error;  
                        X.Report_Error := Proc;  
                        Old_Proc       := Old;  
                    end;

                end Set_Report_Error;

--\x0c
                --/ if Multitask_Locking then
            or  
                accept Get_Error (Display :     X_Display;  
                                  Proc    : out X_Procedure_Variable) do
--/ else
--//         procedure Get_Error (Display :     X_Display;
--//                              Proc    : out X_Procedure_Variable) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Display         - Specifies a display to use
--  Proc            - Specifies/Receives the procedure to use; a value of
--                      None_X_Procedure_Variable restores the library default
--                      value for this procedure.
--  Old_Proc        - Receives the previous procedure setting.
--  All_Displays    - Specifies TRUE to set a global default
--
-- Actaul type of Proc is X_Error_Function.Pv.
--
-- The Error procedure will be called whenever an error event is received.
-- This is not assumed to be a fatal condition, i.e., it is acceptable for
-- this procedure to return.  However, Error should NOT perform any operations
-- (directly or indirectly) on any X_Display.
--
-- All_Displays => True means that we are setting the global default value.
-- All_Displays => False means we are setting this display's default value.
------------------------------------------------------------------------------

                    if Display.Error /= None_X_Procedure_Variable then  
                        Proc := Display.Error;  
                    elsif X.Error /= None_X_Procedure_Variable then  
                        Proc := X.Error;  
                    else  
                        Proc := X_Lib_Default_X_Error_Function;  
                    end if;

                end Get_Error;

--\x0c
                --/ if Multitask_Locking then
            or  
                accept Set_Error (Display      :     X_Display;  
                                  Proc         :     X_Procedure_Variable;  
                                  Old_Proc     : out X_Procedure_Variable;  
                                  All_Displays :     Boolean := True) do
--/ else
--//         procedure Set_Error (Display      :     X_Display;
--//                              Proc         :     X_Procedure_Variable;
--//                              Old_Proc     : out X_Procedure_Variable;
--//                              All_Displays :     Boolean := True) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Display         - Specifies a display to use
--  Proc            - Specifies/Receives the procedure to use; a value of
--                      None_X_Procedure_Variable restores the library default
--                      value for this procedure.
--  Old_Proc        - Receives the previous procedure setting.
--  All_Displays    - Specifies TRUE to set a global default
--
-- Actaul type of Proc is X_Error_Function.Pv.
--
-- The Error procedure will be called whenever an error event is received.
-- This is not assumed to be a fatal condition, i.e., it is acceptable for
-- this procedure to return.  However, Error should NOT perform any operations
-- (directly or indirectly) on any X_Display.
--
-- All_Displays => True means that we are setting the global default value.
-- All_Displays => False means we are setting this display's default value.
------------------------------------------------------------------------------
                    declare  
                        Old :  
                           X_Procedure_Variable; -- Prevent aliasing problems.
                    begin

                        if All_Displays then  
                            Old      := X.Error;  
                            X.Error  := Proc;  
                            Old_Proc := Old;  
                        else  
                            Old           := Display.Error;  
                            Display.Error := Proc;  
                            Old_Proc      := Old;  
                        end if;  
                    end;

                end Set_Error;

--\x0c
                --/ if Multitask_Locking then
            or  
                accept Get_Io_Error (Display :     X_Display;  
                                     Proc    : out X_Procedure_Variable) do
--/ else
--//         procedure Get_Io_Error (Display :     X_Display;
--//                                 Proc    : out X_Procedure_Variable) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Display         - Specifies a display to use
--  Proc            - Specifies/Receives the procedure to use; a value of
--                      None_X_Procedure_Variable restores the library default
--                      value for this procedure.
--  Old_Proc        - Receives the previous procedure setting.
--  All_Displays    - Specifies TRUE to set a global default
--
-- Actaul type of Proc is X_Io_Error_Function.Pv.
--
-- The IO_Error procedure will be called if any sort of network error occurs.
-- This is assumed to be a fatal condition, i.e., IO_Error should not return.
-- It should abort the program or raise an exception.  In a multitasking
-- program it should presumably raise an exception.
--
-- All_Displays => True means that we are setting the global default value.
-- All_Displays => False means we are setting this display's default value.
------------------------------------------------------------------------------

                    if Display.Io_Error /= None_X_Procedure_Variable then  
                        Proc := Display.Io_Error;  
                    elsif X.Io_Error /= None_X_Procedure_Variable then  
                        Proc := X.Io_Error;  
                    else  
                        Proc := X_Lib_Default_X_Io_Error_Function;  
                    end if;

                end Get_Io_Error;

--\x0c
                --/ if Multitask_Locking then
            or  
                accept Set_Io_Error (Display      :     X_Display;  
                                     Proc         :     X_Procedure_Variable;  
                                     Old_Proc     : out X_Procedure_Variable;  
                                     All_Displays :     Boolean := True) do
--/ else
--//         procedure Set_Io_Error (Display      :     X_Display;
--//                                 Proc         :     X_Procedure_Variable;
--//                                 Old_Proc     : out X_Procedure_Variable;
--//                                 All_Displays :     Boolean := True) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Display         - Specifies a display to use
--  Proc            - Specifies/Receives the procedure to use; a value of
--                      None_X_Procedure_Variable restores the library default
--                      value for this procedure.
--  Old_Proc        - Receives the previous procedure setting.
--  All_Displays    - Specifies TRUE to set a global default
--
-- Actaul type of Proc is X_Io_Error_Function.Pv.
--
-- The IO_Error procedure will be called if any sort of network error occurs.
-- This is assumed to be a fatal condition, i.e., IO_Error should not return.
-- It should abort the program or raise an exception.  In a multitasking
-- program it should presumably raise an exception.
--
-- All_Displays => True means that we are setting the global default value.
-- All_Displays => False means we are setting this display's default value.
------------------------------------------------------------------------------
                    declare  
                        Old :  
                           X_Procedure_Variable; -- Prevent aliasing problems.
                    begin

                        if All_Displays then  
                            Old        := X.Io_Error;  
                            X.Io_Error := Proc;  
                            Old_Proc   := Old;  
                        else  
                            Old              := Display.Io_Error;  
                            Display.Io_Error := Proc;  
                            Old_Proc         := Old;  
                        end if;  
                    end;

                end Set_Io_Error;

--\x0c
                --/ if Multitask_Locking then
            or  
                when not Seized_Display_List =>  
                    accept Seize_Display_List (Display : out X_Display) do  
                        Seized_Display_List := True;
--/ else
--//         procedure Seize_Display_List (Display : out X_Display) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Display - Receives the display list.
--
-- Called to Seize the list of all currently open displays.  While this list
-- is Seized, no displays can be opened or closed.  Be sure to Release it.
-- Do not modify the list in any way.
------------------------------------------------------------------------------

                        Display := X.Head_Of_Display_List;

                    end Seize_Display_List;

--\x0c
                    --/ if Multitask_Locking then
            or  
                when Seized_Display_List =>  
                    accept Release_Display_List do  
                        Seized_Display_List := False;
--/ else
--//         procedure Release_Display_List is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Display - Receives the display list.
--
-- Called to Seize the list of all currently open displays.  While this list
-- is Seized, no displays can be opened or closed.  Be sure to Release it.
-- Do not modify the list in any way.
------------------------------------------------------------------------------

                        null;

                    end Release_Display_List;

--\x0c
                    --/ if Multitask_Locking then
            or  
                when not Seized_Quark_Map =>  
                    accept Seize_Quark_Map (Map : out X_Rm_Quark_Map.Map) do  
                        Seized_Quark_Map := True;
--/ else
--//         procedure Seize_Quark_Map (Map : out X_Rm_Quark_Map.Map) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Map - Specifies/Receives the quark map for the library
--
-- Map of all known Quarks.  All displays share the same set of quark values.
-- Seize the map, use it in some way, and then Release it.  Whatever you
-- Release will become the new map for all displays.
------------------------------------------------------------------------------

                        Map := X.Quark_Map;

                    end Seize_Quark_Map;

--\x0c
                    --/ if Multitask_Locking then
            or  
                when Seized_Quark_Map =>  
                    accept Release_Quark_Map  
                              (Map : in out X_Rm_Quark_Map.Map) do  
                        Seized_Quark_Map := False;
--/ else
--//         procedure Release_Quark_Map (Map : in out X_Rm_Quark_Map.Map) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Map - Specifies/Receives the quark map for the library
--
-- Map of all known Quarks.  All displays share the same set of quark values.
-- Seize the map, use it in some way, and then Release it.  Whatever you
-- Release will become the new map for all displays.
------------------------------------------------------------------------------
                       X.Quark_Map := Map;  
                        Map         := X_Rm_Quark_Map.None_Map;

                    end Release_Quark_Map;

--\x0c
                    --/ if Multitask_Locking then
            or  
                accept Get_Next_Quark (Quark : out X_Rm_Quark) do
--/ else
--//         procedure Get_Next_Quark (Quark : out X_Rm_Quark) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Quark   - Specifies/Receives the new quark value
--
-- Used to generate new quark values.  The Set interface is only for debugging
-- and library testing.
------------------------------------------------------------------------------

                    Quark           := X.Next_Quark;  
                    X.Next_Quark.Id := X.Next_Quark.Id + 1;

                end Get_Next_Quark;

--\x0c
                --/ if Multitask_Locking then
            or  
                when not Seized_Quark_Map =>  
                    accept Set_Next_Quark (Quark : X_Rm_Quark) do
--/ else
--//         procedure Set_Next_Quark (Quark : X_Rm_Quark) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  Quark   - Specifies/Receives the new quark value
--
-- Used to generate new quark values.  The Set interface is only for debugging
-- and library testing.
------------------------------------------------------------------------------

                        X.Next_Quark := Quark;

                    end Set_Next_Quark;

--\x0c
                    --/ if Multitask_Locking then
            or  
                when not Seized_Resource_Quarks =>  
                    accept Seize_Resource_Quarks  
                              (List : out X_Rm_Quark_Bit_List) do  
                        Seized_Resource_Quarks := True;
--/ else
--//         procedure Seize_Resource_Quarks (List : out X_Rm_Quark_Bit_List) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  List    - Specifies/Receives the boolean array of known resource quarks
--
-- Used by the RM to optimize resource lookup.  Seize the list, modify it,
-- then Release it so that others can use the modified/reallocated list.
------------------------------------------------------------------------------

                        List := X.Resource_Quarks;

                    end Seize_Resource_Quarks;

--\x0c
                    --/ if Multitask_Locking then
            or  
                when Seized_Resource_Quarks =>  
                    accept Release_Resource_Quarks  
                              (List : in out X_Rm_Quark_Bit_List) do  
                        Seized_Resource_Quarks := False;
--/ else
--//         procedure Release_Resource_Quarks (List : in out X_Rm_Quark_Bit_List) is
--//         begin
--/ end if;
------------------------------------------------------------------------------
--  List    - Specifies/Receives the boolean array of known resource quarks
--
-- Used by the RM to optimize resource lookup.  Seize the list, modify it,
-- then Release it so that others can use the modified/reallocated list.
------------------------------------------------------------------------------

                        X.Resource_Quarks := List;  
                        List              := None_X_Rm_Quark_Bit_List;

                    end Release_Resource_Quarks;

--\x0c
                    --/ if Multitask_Locking then
            or  
                terminate;  
            end select;
--/ end if;

------------------------------------------------------------------------------
-- Loop and get the next rendezvous.
------------------------------------------------------------------------------

        end loop;  
    end X_Lib;

--\x0c
end Xlbit_Library3;  

E3 Meta Data

    nblk1=28
    nid=0
    hdr6=50
        [0x00] rec0=26 rec1=00 rec2=01 rec3=026
        [0x01] rec0=0f rec1=00 rec2=02 rec3=056
        [0x02] rec0=18 rec1=00 rec2=03 rec3=08e
        [0x03] rec0=13 rec1=00 rec2=04 rec3=080
        [0x04] rec0=14 rec1=00 rec2=05 rec3=056
        [0x05] rec0=19 rec1=00 rec2=06 rec3=018
        [0x06] rec0=18 rec1=00 rec2=07 rec3=07a
        [0x07] rec0=00 rec1=00 rec2=28 rec3=012
        [0x08] rec0=16 rec1=00 rec2=08 rec3=072
        [0x09] rec0=19 rec1=00 rec2=09 rec3=026
        [0x0a] rec0=19 rec1=00 rec2=0a rec3=03c
        [0x0b] rec0=18 rec1=00 rec2=0b rec3=010
        [0x0c] rec0=00 rec1=00 rec2=27 rec3=01a
        [0x0d] rec0=16 rec1=00 rec2=0c rec3=06e
        [0x0e] rec0=00 rec1=00 rec2=26 rec3=002
        [0x0f] rec0=14 rec1=00 rec2=0d rec3=048
        [0x10] rec0=19 rec1=00 rec2=0e rec3=00e
        [0x11] rec0=16 rec1=00 rec2=0f rec3=05a
        [0x12] rec0=15 rec1=00 rec2=10 rec3=000
        [0x13] rec0=01 rec1=00 rec2=25 rec3=01e
        [0x14] rec0=16 rec1=00 rec2=11 rec3=088
        [0x15] rec0=17 rec1=00 rec2=12 rec3=00e
        [0x16] rec0=10 rec1=00 rec2=13 rec3=058
        [0x17] rec0=16 rec1=00 rec2=14 rec3=004
        [0x18] rec0=00 rec1=00 rec2=24 rec3=00c
        [0x19] rec0=17 rec1=00 rec2=15 rec3=008
        [0x1a] rec0=00 rec1=00 rec2=23 rec3=01e
        [0x1b] rec0=13 rec1=00 rec2=16 rec3=038
        [0x1c] rec0=15 rec1=00 rec2=17 rec3=03e
        [0x1d] rec0=12 rec1=00 rec2=18 rec3=068
        [0x1e] rec0=1a rec1=00 rec2=19 rec3=05c
        [0x1f] rec0=00 rec1=00 rec2=22 rec3=03c
        [0x20] rec0=1a rec1=00 rec2=1a rec3=040
        [0x21] rec0=18 rec1=00 rec2=1b rec3=032
        [0x22] rec0=19 rec1=00 rec2=1c rec3=002
        [0x23] rec0=1c rec1=00 rec2=1d rec3=034
        [0x24] rec0=00 rec1=00 rec2=21 rec3=024
        [0x25] rec0=19 rec1=00 rec2=1e rec3=0a0
        [0x26] rec0=19 rec1=00 rec2=1f rec3=032
        [0x27] rec0=1c rec1=00 rec2=20 rec3=001
    tail 0x21500959c819780fbde7e 0x42a00088462063203