stable/src/StableError.m3


Copyright (C) 1994, Digital Equipment Corp.
 Created by Carsten Weich                                    
                                                             

Stable object exceptions

MODULE StableError;

IMPORT RdUtils, Stdio, Wr, Thread, Process;

PROCEDURE ToText(code: Code): TEXT =
RdUtils.FailureText does the same conversion for Rd/Wr Excpetions. We can use it here:
  BEGIN
    RETURN RdUtils.FailureText(code);
  END ToText;

PROCEDURE Halt (msg: TEXT) =
  <*FATAL Wr.Failure, Thread.Alerted*>
  BEGIN
    Wr.PutText(Stdio.stderr, "****\n");
    Wr.PutText(Stdio.stderr, "**** fatal stable object error\n");
    Wr.PutText(Stdio.stderr, "****\n");
    Wr.PutText(Stdio.stderr, "****       " & msg & "\n");
    Wr.PutText(Stdio.stderr, "****\n\n\nProgram aborted\n");
    Process.Exit(1);
  END Halt;

BEGIN
END StableError.