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 ); }
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 ); }
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(); } }
void FEndThread( void ) //===================== { RTSuicide(); }