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: 1958 (0x7a6) Types: TextFile Names: »B«
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS └─ ⟦91c658230⟧ »DATA« └─⟦458657fb6⟧ └─⟦a5bbbb819⟧ └─⟦this⟧ └─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3 └─ ⟦fc9b38f02⟧ »DATA« └─⟦9b46a407a⟧ └─⟦eec0a994f⟧ └─⟦this⟧
procedure Transport_Server_Proc (Service : in out Service_Type; Connection : in out Transport.Connection_Id; Network : Transport_Defs.Network_Name; Local_Socket : Transport_Defs.Socket_Id) is Status : Transport_Defs.Status_Code; Fatal_Error : exception; Min_Backoff : constant Duration := 0.1; Max_Backoff : constant Duration := 5 * 60.0; Backoff : Duration := Min_Backoff; procedure Do_Backoff (Backoff : in out Duration) is begin delay Backoff; Backoff := 2 * Backoff; if Backoff > Max_Backoff then Backoff := Max_Backoff; end if; end Do_Backoff; function Status_Ok return Boolean is begin case Status is when Transport_Defs.Ok => return True; when Transport_Defs.Too_Many_Clients | Transport_Defs.No_Hardware | Transport_Defs.No_Such_Network | Transport_Defs.Socket_In_Use | Transport_Defs.Access_Denied => raise Fatal_Error; when others => Do_Backoff (Backoff); return False; end case; end Status_Ok; begin loop Transport.Open (Connection, Status, Network, Local_Socket); if Status_Ok then Transport.Connect (Connection, Status); if Status_Ok then Serve (Service, Connection); Backoff := Min_Backoff; end if; Transport.Disconnect (Connection); end if; Transport.Close (Connection); end loop; exception when Fatal_Error => Transport.Close (Connection); when others => Transport.Close (Connection); raise; end Transport_Server_Proc;