Guardian Programmer's Guide

Table Of Contents
Communicating With Terminals
Guardian Programmer’s Guide 421922-014
10 - 41
Recovering From Errors: A Sample Program
! Retry up to RETRY^LIMIT:
BEGIN
RETRY^COUNT := RETRY^COUNT + 1;
IF RETRY^COUNT < RETRY^LIMIT THEN
! Retry limit not yet reached, so try again after one
! second delay:
BEGIN
SBUFFER ':=' "Terminal I/O error: trying again"
-> @S^PTR;
WCOUNT := @S^PTR '-' @SBUFFER;
CALL WRITEX(TERM^NUM,SBUFFER,WCOUNT);
CALL DELAY(100D);
DONE := NO;
END
ELSE
! Retry limit reached. Stop the process:
BEGIN
SBUFFER ':='
"Terminal I/O error: operation failed"
-> @S^PTR;
WCOUNT := @S^PTR '-' @SBUFFER;
CALL WRITEX(TERM^NUM,SBUFFER,WCOUNT);
CALL PROCESS_STOP_;
END;
END;
END
ELSE
CALL PROCESS^INPUT(COUNT^READ);
END;
END;