diff options
author | John Högberg <[email protected]> | 2017-12-01 07:59:41 +0100 |
---|---|---|
committer | John Högberg <[email protected]> | 2017-12-01 07:59:41 +0100 |
commit | 76c4821cff1e91c26dd2f812fc8cb40aa7d48e57 (patch) | |
tree | 3b2fefd934522721c30735766d82974460809256 /erts/preloaded/src/erl_prim_loader.erl | |
parent | 93cc4a79c3c2bf6eb9489558795da726f141ed06 (diff) | |
parent | 0278c9873ffc277c9a940d6f5cae1508a6685c7b (diff) | |
download | otp-76c4821cff1e91c26dd2f812fc8cb40aa7d48e57.tar.gz otp-76c4821cff1e91c26dd2f812fc8cb40aa7d48e57.tar.bz2 otp-76c4821cff1e91c26dd2f812fc8cb40aa7d48e57.zip |
Merge branch 'john/erts/efile-nif'
OTP-14256
OTP-14797
Diffstat (limited to 'erts/preloaded/src/erl_prim_loader.erl')
-rw-r--r-- | erts/preloaded/src/erl_prim_loader.erl | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/erts/preloaded/src/erl_prim_loader.erl b/erts/preloaded/src/erl_prim_loader.erl index 1d09aeded9..d16fe5a0bc 100644 --- a/erts/preloaded/src/erl_prim_loader.erl +++ b/erts/preloaded/src/erl_prim_loader.erl @@ -151,9 +151,8 @@ start_inet(Parent) -> loop(State, Parent, []). start_efile(Parent) -> - {ok, Port} = prim_file:start(), %% Check that we started in a valid directory. - case prim_file:get_cwd(Port) of + case prim_file:get_cwd() of {error, _} -> %% At this point in the startup, we have no error_logger at all. Report = "Invalid current directory or invalid filename " @@ -165,7 +164,7 @@ start_efile(Parent) -> end, PS = prim_init(), State = #state {loader = efile, - data = Port, + data = noport, timeout = ?EFILE_IDLE_TIMEOUT, prim_state = PS}, loop(State, Parent, []). @@ -401,12 +400,12 @@ handle_get_cwd(State = #state{loader = inet}, Drive) -> ?SAFE2(inet_get_cwd(State, Drive), State). handle_stop(State = #state{loader = efile}) -> - efile_stop_port(State); + State; handle_stop(State = #state{loader = inet}) -> inet_stop_port(State). -handle_exit(State = #state{loader = efile}, Who, Reason) -> - efile_exit_port(State, Who, Reason); +handle_exit(State = #state{loader = efile}, _Who, _Reason) -> + State; handle_exit(State = #state{loader = inet}, Who, Reason) -> inet_exit_port(State, Who, Reason). @@ -475,15 +474,6 @@ efile_get_cwd(#state{prim_state = PS} = State, Drive) -> {Res, PS2} = prim_get_cwd(PS, Drive), {Res, State#state{prim_state = PS2}}. -efile_stop_port(#state{data=Port}=State) -> - prim_file:close(Port), - State#state{data=noport}. - -efile_exit_port(State, Port, Reason) when State#state.data =:= Port -> - exit({port_died,Reason}); -efile_exit_port(State, _Port, _Reason) -> - State. - efile_timeout_handler(State, _Parent) -> prim_purge_cache(), State. |