GDSX Manual
Service Routines
Extended General Device Support (GDSX) Manual–134303
8-18
^CHECKPOINT
buffer:length input:input
STRING .EXT:ref:*, INT:value
is a pointer to the buffer to be checked and the length of the buffer in bytes.
^CHECKPOINT
When GDSX is running as a process pair, this procedure is called by a 
DEVICE^HANDLER task or LINE^HANDLER task to send information pertaining to 
its current executing state to the backup process. The checkpoint information enables 
the backup process to recover from a failure of the primary process. 
A call to this function establishes a restart point in the calling task at the return from the 
call, in a manner similar to a call to the Guardian CHECKPOINT procedure.  Normally, 
the procedure returns with a value of zero for status. However, if a failure of the 
primary GDSX process occurs, all I/O that the task had outstanding is canceled by 
TSCODE, any semaphores held (including the checkpoint semaphore) are released, the 
procedure returns a nonzero value, and the task executes the statement following the last 
call to ^CHECKPOINT. 
For additional information on checkpointing, see “Fault Tolerance” on page 2-28. 
status returned value
INT:value
indicates the outcome of the call.  The value of status is one of the following: 
type input
INT:value
specifies the type of checkpoint.  The value of type is one of the following: 
Considerations
•
^CHECKPOINT causes the calling task to be suspended.
•
After a takeover, memory pool buffers must be allocated by a call to 
^RECLAIMBUFFER.
status := ^CHECKPOINT ( type ); ! 
i
0 The checkpoint was successful
Nonzero Number There was a takeover by the backup process
1 Checkpoint only the stack image and the TCB
2 Checkpoint the task’s stack image, its TCB, and all local and extended 
memory that the task currently has allocated by way of GETLOCALPOOL or 
GETEXTPOOL










