diff options
author | Dan Gudmundsson <[email protected]> | 2015-09-18 08:30:36 +0200 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2015-09-18 08:30:36 +0200 |
commit | 76dd921ad99aa3ef98424a2f1c4bc8de66e766e2 (patch) | |
tree | ac13f3bc1ed9a108c07f21487210aaa844841212 /lib | |
parent | 803b9f8b80ca937dd5b62c594a115fc4aa554b33 (diff) | |
parent | b5fc65bb0a959bd96c125ce523c41052bbc0c04d (diff) | |
download | otp-76dd921ad99aa3ef98424a2f1c4bc8de66e766e2.tar.gz otp-76dd921ad99aa3ef98424a2f1c4bc8de66e766e2.tar.bz2 otp-76dd921ad99aa3ef98424a2f1c4bc8de66e766e2.zip |
Merge branch 'maint'
* maint:
stdlib: Fix leaking files after error_logger:logfile(close)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/stdlib/src/error_logger_file_h.erl | 10 | ||||
-rw-r--r-- | lib/stdlib/test/error_logger_h_SUITE.erl | 6 |
2 files changed, 8 insertions, 8 deletions
diff --git a/lib/stdlib/src/error_logger_file_h.erl b/lib/stdlib/src/error_logger_file_h.erl index 48c471924e..fea1656051 100644 --- a/lib/stdlib/src/error_logger_file_h.erl +++ b/lib/stdlib/src/error_logger_file_h.erl @@ -94,14 +94,8 @@ handle_call(filename, #st{filename=File}=State) -> handle_call(_Query, State) -> {ok, {error, bad_query}, State}. -terminate(_Reason, State) -> - case State of - {Fd, _File, _Prev} -> - ok = file:close(Fd); - _ -> - ok - end, - []. +terminate(_Reason, #st{fd=Fd}) -> + file:close(Fd). code_change(_OldVsn, State, _Extra) -> {ok, State}. diff --git a/lib/stdlib/test/error_logger_h_SUITE.erl b/lib/stdlib/test/error_logger_h_SUITE.erl index b0b9c717a1..c82b1b62ef 100644 --- a/lib/stdlib/test/error_logger_h_SUITE.erl +++ b/lib/stdlib/test/error_logger_h_SUITE.erl @@ -65,6 +65,12 @@ logfile(Config) -> error_logger:logfile(close), analyse_events(Log, Ev, [AtNode], unlimited), + [] = [{X, file:pid2name(X)} || X <- processes(), Data <- [process_info(X, [current_function])], + Data =/= undefined, + element(1, element(2, lists:keyfind(current_function, 1, Data))) + =:= file_io_server, + file:pid2name(X) =:= {ok, Log}], + test_server:stop_node(Node), cleanup(Log), |