mirror of
https://github.com/mikpe/pdp10-tools.git
synced 2026-01-23 19:08:00 +00:00
pdp10_stdio:fopen/2: silence unwanted crash report on failure; scan_state:fopen/1: likewise
This commit is contained in:
parent
d3e5383f36
commit
858cec95bb
@ -76,7 +76,10 @@ stdin() ->
|
||||
do_fopen(stdin).
|
||||
|
||||
do_fopen(File) ->
|
||||
gen_server:start(?MODULE, File, []).
|
||||
case gen_server:start(?MODULE, File, []) of
|
||||
{error, {shutdown, Reason}} -> {error, Reason};
|
||||
Result -> Result
|
||||
end.
|
||||
|
||||
-spec ungetc(byte(), scan_state()) -> ok | {error, {module(), term()}}.
|
||||
ungetc(Ch, Pid) ->
|
||||
@ -108,7 +111,9 @@ init(stdin) ->
|
||||
init(File) ->
|
||||
case file:open(File, [raw, read, read_ahead]) of
|
||||
{ok, IoDev} -> do_init(File, IoDev);
|
||||
{error, Reason} -> {stop, {file, Reason}}
|
||||
{error, Reason} ->
|
||||
%% The {shutdown, ...} wrapper prevents an unwanted crash report.
|
||||
{stop, {shutdown, {file, Reason}}}
|
||||
end.
|
||||
|
||||
do_init(FileName, IoDev) ->
|
||||
|
||||
@ -110,6 +110,7 @@ fopen(Path, Modes) ->
|
||||
do_open(What) ->
|
||||
case gen_server:start(?MODULE, What, []) of
|
||||
{ok, Pid} -> {ok, #file{pid = Pid}};
|
||||
{error, {shutdown, Reason}} -> {error, Reason};
|
||||
{error, _Reason} = Error -> Error
|
||||
end.
|
||||
|
||||
@ -190,8 +191,8 @@ do_init({ok, {IoDev, Read, Write}}) ->
|
||||
, iodir = seek
|
||||
}};
|
||||
do_init({error, Reason}) ->
|
||||
%% FIXME: this still seems to generate crash reports
|
||||
{stop, Reason}.
|
||||
%% The {shutdown, ...} wrapper prevents an unwanted crash report.
|
||||
{stop, {shutdown, Reason}}.
|
||||
|
||||
handle_call(Req, _From, State) ->
|
||||
case Req of
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user