.TITLE QLOCK .IDENT /V1.0/ .MCALL QUEDF$,WSIG$S QUEDF$ ; DEFINE QUEUE STATUS BITS ; ; BATCH QUEUE LISTS LOCK/UNLOCK ROUTINES ; ; S.M. THOMPSON, AUGUST 1979. ; .SBTTL ROUTINE TO LOCK BATCH SYSTEM LISTS ;+ ; *** $QLOCK ; ; THIS ROUTINE IS CALLED TO LOCK THE SYSTEM LISTS. IF THE ; LISTS ARE ALREADY LOCKED, THE ROUTINE WAITS UNTIL THEY ; ARE UNLOCKED, AND THEN LOCKS THEM. THIS PREVENTS THE BATCH ; QUEUE FROM BEING CORRUPTED WHEN TWO JOBS REFERENCE IT AT ; THE SAME TIME. ; ;- $QLOCK::BIT #QQ.LOK,$QSTAT ; ARE THE LISTS LOCKED? BEQ 5$ ; NO WSIG$S ; YES, WAIT FOR WHOEVER HAS LOCKED ; THE LISTS TO UNLOCK THEM BR $QLOCK ; AND TRY AGAIN 5$: BIS #QQ.LOK,$QSTAT ; OK, NOW LOCK THE LISTS RETURN ; AND RETURN .PAGE .SBTTL ROUTINE TO UNLOCK BATCH SYSTEM LISTS ;+ ; *** $QUNLK ; ; THIS ROUTINE CLEARS THE QUEUE LOCK BIT IN THE BATCH ; QUEUE STATUS WORD. ; ;- $QUNLK::BIC #QQ.LOK,$QSTAT ; THIS IS ALL THERE IS TO IT! RETURN ; .END