Use this system macro to allow an entry control block (ECB) to gain
exclusive control of a control block area.
Format
- label
- A symbolic name can be assigned to the macro statement.
- TYPE
- The name of the control block area to be locked.
- CCB
- The TPF/APPC conversation control block (CCB) area is to be locked.
- SCB
- The TPF/APPC session control block (SCB) area is to be locked.
Entry Requirements
- R9 must contain the address of the ECB being processed.
- The calling segment must have write access (using CINFC W) to the control
block to be locked.
Return Conditions
- Control is returned to the next sequential instruction (NSI) after the
control block is locked.
- After the control block is locked, the lock field in the control block
contains the address of the ECB that holds this lock.
- The contents of R14 and R15 are destroyed across this macro call.
The contents of all other registers are preserved across this macro
call.
Programming Considerations
- You can run this macro on any I-stream.
- Control must not be given up between a ILCKCB macro and a IULKCB
macro. Use the IULKCB macro to unlock the control block that was locked
by the ILCKCB macro.
- If the control block is already held by the issuing ECB, the system error
routine issues a dump with return.
- If the control block to be locked is currently held by another ECB, the
code spins, waiting for the lock to be freed. If the lock is not freed,
the ECB may be canceled by a timeout dump.
- Any other lock should not be held by this ECB since a lock-out condition
could occur.
- This macro is restricted to real-time programs, or CP programs with a
valid ECB in R9.
Examples
ILCKCB TYPE=CCB
This invocation requests that the conversation control block (CCB) be
locked.