Example #1
0
void    IOErr( int errcode, ... ) {
//=================================

// Handle a run time i/o error.

    char        errbuff[ERR_BUFF_SIZE+1];
    va_list     args;

    va_start( args, errcode );
        if( ( IOCB->set_flags & (SET_IOSPTR|SET_ERRSTMT) ) == 0 ) {
            if( errcode == IO_FILE_PROBLEM ) {
                GetIOErrMsg( IOCB->fileinfo, errbuff );
                SysIOErr( errcode, errbuff );
            } else {
                RTErrHandler( errcode, args );
            }
        } else {
            errcode = ErrCodOrg( errcode );
            if( IOCB->fileinfo != NULL ) {
                IOCB->fileinfo->error = errcode;
            }
            IOCB->status = errcode;
        }
        RTSuicide();
    va_end( args );
}
Example #2
0
static  void    FreeIOErr( uint err ) {
//=====================================

// Report error during list-directed or NAMELIST-directed i/o.

    if( IOCB->flags & NML_DIRECTED ) {
        IOCB->flags |= NML_CONTINUE;
        RTSuicide();
    }
    IOErr( err );
}
Example #3
0
void    RTErrHandler( int errcode, va_list args ) {
//===============================================

// Print a run-time error message and halt execution.

    WriteErr( errcode, args );
    _RWD_XcptFlags |= XF_FATAL_ERROR;
    if( (_RWD_XcptFlags & XF_IO_INTERRUPTED) == 0 ) {
        RTSuicide();
    }
}
Example #4
0
void FEndThread( void )
//=====================
{
    RTSuicide();
}