GDSX Manual

User Exit Descriptions
Extended General Device Support (GDSX) Manual134303
9-24
USER^TAKEOVER
. ! under this current
. ! L^H task.
END;
DROP DEV;
All active terminals under LINE X can be scanned with the same code, except that
CMAP is replaced by AMAP.
The TSCODE-supported FAULT procedure should only be called from the
USER^STOP exit with its noretn parameter equal to 0. See the description of the
FAULT procedure on page 8-22.
When USER^STOP is called, the current task is the task being stopped, although it
is not active at this time.
USER^TAKEOVER
This routine is called from TSCODE when the backup process is taking over. TSCODE
has completed its takeover housekeeping, and system and user tasks have been created
but are stopped. USER^TAKEOVER can alter memory contents prior to resumption of
normal operation.
When GDSX creates a backup process, it checkpoints each DCB in its entirety. This can
have undesirable side effects if the backup GDSX process has to take over, because the
contents of the user portion of DCBs may contain addresses or other data that is not
valid in the backup (USAMPLE provides an example of this situation). However,
USER^TAKEOVER may scan the DCB table and clear any fields in the user-managed
part of the DCB.
Considerations
Because USER^TAKEOVER runs before normal task dispatching is allowed to
resume, it must not call any pseudo procedure that might cause a wait for a resource
or an I/O completion.
In this procedure you cannot remap buffers allocated in the former primary process
(which existed before the takeover) by calling ^RECLAIMBUFFER, because each
active user task must reclaim its own buffers, and no user task is active at this point.
The TSCODE-supported FAULT procedure should not be called from the
USER^TAKEOVER exit.
USER^VERSION
This procedure returns a user code version date to TSCODE.
PROC USER^TAKEOVER;
status := PROC USER^VERSION ( string ); !
i