diff options
author | Dan Gudmundsson <dgud@erlang.org> | 2015-09-17 09:40:04 +0200 |
---|---|---|
committer | Dan Gudmundsson <dgud@erlang.org> | 2015-09-17 09:40:04 +0200 |
commit | ad7bb40d88acd0de5bdad9b64f8d8dd5c303fa48 (patch) | |
tree | 0dfb443a8d5ec304e09b85979c57014b7fff8793 /lib | |
parent | acc47d90e34e4552ffe99766da7ac95423db1e30 (diff) | |
download | otp-ad7bb40d88acd0de5bdad9b64f8d8dd5c303fa48.tar.gz otp-ad7bb40d88acd0de5bdad9b64f8d8dd5c303fa48.tar.bz2 otp-ad7bb40d88acd0de5bdad9b64f8d8dd5c303fa48.zip |
stdlib: Fix leaking files after error_logger:logfile(close)
Introduced when changing state from tuple to record.
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), |