.TITLE HST$LK - LOCK AND UNLOCK HISTOGRAM ACCESS .IDENT /11MAY7/ ;15:00:00, EM ; .ENTRY HST$LK - LOCK AND UNLOCK HISTOGRAM ACCESS ;+ ; H S T $ L K / H S T $ U N ; ; PURPOSE: HST$LK AND HST$UN ARE USED TO INTERLOCK CERTAIN CRITICAL ; HISTOGRAM OPERATIONS IN ORDER TO MAKE SURE THAT HISTOGRAM ; AND HDB ALLOCATION DO NOT CHANGE WHILE THEY ARE TAKING ; PLACE. HST$LK WAITS UNTIL THE PACKAGE IS UNLOCKED, THEN ; LOCKS IT. HST$UN UNLOCKS THE PACKAGE AND DECLARES A ; SIGNIFICANT EVENT. NEITHER ROUTINE HAS ANY ENTRY ; PARAMETERS OR CHANGES ANY REGISTERS. THEIR ONLY EFFECT ; IS ON THE STATUS FLAG INTLOK. ; ; INTERFACE: CALLING SEQUENCE: ; CALL HST$LK ; CALL HST$UN ; ; OUTPUT: WHEN INTLOK=-1, THE PACKAGE IS UNLOCKED. ; WHEN INTLOK>=0, THE PACKAGE IS LOCKED. ; ; LANGUAGE: MACRO-11 ; ; RESTRICTIONS: NOT FORTRAN-CALLABLE. THESE ROUTINES ARE INTERNAL ; ROUTINES TO THE HISTOGRAM PACKAGE AND ARE NOT ; INTENDED FOR GENERAL USE. ;- ; REVISIONS: ; 01-JUN-75 MK WRITTEN ; 02-FEB-77 NS CHANGE GLOBAL NAMES IN HCOM1 TO AVOID CONFLICTS. ; ENABL=H.ENBL, INTLOK=H.INLK ; 11-MAY-77 EM UPDATED TO CONFORM TO STANDARDS ; .MCALL WSIG$S,DECL$S ; HST$LK:: TST H.ENBL ;PACKAGE ENABLED? BEQ RTN ;NO 1$: INC H.INLK ;TRY TO LOCK THE PACKAGE BEQ RTN ;WE'VE GOT IT DEC H.INLK ;SOMEONE ELSE HAS IT - BACK OFF WSIG$S ;WAIT FOR SOMETHING TO HAPPEN BR 1$ ;TRY AGAIN ; HST$UN:: DEC H.INLK ;UNLOCK THE PACKAGE DECL$S ;DECLARE SIG EVENT RTN: RETURN .END