Routines that suspend the current RB can use the CALLDISP macro
with the BRANCH=YES option to enter the suspended state. The BRANCH=YES
option allows an issuer of the SUSPEND macro with its RB=CURRENT option
to exit while leaving the current RB in the wait state. This option
causes the system to save status and dispatches the next ready dispatchable
unit.
Some considerations for using the BRANCH=YES option on the CALLDISP
macro are:
- The issuer of CALLDISP must be executing in supervisor state with
PSW key zero.
- The issuer must be in task mode.
- The issuer can be in cross memory mode.
- The BRANCH=YES option requires inclusion of the IHAPSA mapping
macro.
- The FIXED=YES or FIXED=NO option can be specified with BRANCH=YES.
- When FRRSTK=SAVE is specified:
- If the caller holds the LOCAL or CML lock, an enabled unlocked
task (EUT) FRR must exist.
- If any EUT FRRs exist, the current FRR stack is saved and the
caller may hold either the LOCAL or CML lock. CALLDISP releases the
lock.
- When FRRSTK=NOSAVE is specified:
- The current FRR stack is purged.
- The caller may hold either the LOCAL or CML lock. CALLDISP releases
the lock.
Note: - A type 1 and type 6 SVC must not issue the CALLDISP macro.
- The LOCAL or CML lock can be used to serialize the SUSPEND processing
and establish the RESUME processing.