The SUSPEND macro can be issued in cross memory mode.
Only a routine running in supervisor state with PSW key 0 can
issue SUSPEND.
The SUSPEND macro requires that the CVT mapping macro be included.
Only task-related users can issue SUSPEND to suspend an RB, and
then only for the current task.
The SUSPEND function user must ensure that the SUSPEND and RESUME
sequence takes place in proper order. The user must issue SUSPEND,
then event completion must occur, and then the RESUME function must
take place. One way to ensure proper sequencing is to issue SUSPEND
before scheduling the asynchronous process on which the RB must wait.
Do not intermix the SUSPEND and RESUME sequence with the WAIT
and POST sequence on a single RB. Because the SUSPEND-RESUME sequence
is a restricted-use function, it does only minimal validity checking.
For example, if an RB were already waiting on 255 events and someone
issued a SUSPEND against it, one POST or RESUME could make the RB
dispatchable.
An RB can have only one SUSPEND outstanding at a time. There can
be no subsequent SUSPEND macros issued until a RESUME occurs for the
outstanding SUSPEND macro.