attach) has expired. The token, however, remains suspended and must
be the object of a RESUME before it can be the object of a
DELETE_SUSPEND.
The RESUME call
RESUME restarts execution of a task that is suspended or timed out. There must
be only one RESUME request for each SUSPEND. However, because this is an
asynchronous interface, a SUSPEND can be received either before or after its
corresponding RESUME. Youmust ensure that you keep account of the SUSPEND
and RESUME requests issued from your exit program.

RESUME

DFHDSSRX [CALL,]
[CLEAR,]
[IN,
FUNCTION(RESUME),
SUSPEND_TOKEN(name4 | (Rn)),
[COMPLETION_CODE(name1 | (Rn)),]]
[OUT,
RESPONSE(name1 | *),
REASON(name1 | *)]
This command is threadsafe.
COMPLETION_CODE(name1 | (Rn))
specifies a user-defined “reason for RESUME” code during suspend and
resume processing.
name1
The name of a 1-byte area to receive the code
(Rn) A register,in which the low-order byte contains the completion code and
the other bytes are zero.
SUSPEND_TOKEN(name4 | (Rn))
specifies a token assigned by the system to identify the SUSPEND/RESUME
pair of operations used on the task.
name4
The name of a location where you have a 4-byte token previously
obtained as output from an ADD_SUSPEND call
(Rn) A register containing the token value.

RESPONSE and REASON values for RESUME:

RESPONSE REASON
OK None
EXCEPTION TASK_CANCELLED
TIMED_OUT
DISASTER None
INVALID None
KERNERROR None
PURGED None
Note:
1. For more detail, refer to the explanation of RESPONSE and REASON in
“Making an XPI call” on page 308.
Chapter3. The user exit programming interface (XPI) 339