aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/src/disk_log_server.erl
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2013-05-06 12:16:38 +0200
committerHans Bolinder <[email protected]>2013-05-06 12:16:38 +0200
commit551d92fead40277f2152a7351ed6ab19b623b16b (patch)
tree7812afb9446ff1c7a8596a266a1cbd81eacc5f96 /lib/kernel/src/disk_log_server.erl
parent0dc5a00011d1d24b68c9d43ff608415f84c50499 (diff)
parent2324dec9fb37e301413c74acf1dce8ae3c29fc48 (diff)
downloadotp-551d92fead40277f2152a7351ed6ab19b623b16b.tar.gz
otp-551d92fead40277f2152a7351ed6ab19b623b16b.tar.bz2
otp-551d92fead40277f2152a7351ed6ab19b623b16b.zip
Merge branch 'hb/unmatched_returns/OTP-10908'
* hb/unmatched_returns/OTP-10908: Fix unmatched_returns warnings in Kernel Fix a minor bug in ets:tabfile_info() and ets:file2tab() Fix unmatched_returns warning in Kernel Fix unmatched_return warnings in sasl Fix unmatched_return warnings in kernel Fix unmatched_return warning in erl_prim_loader Fix unmatched_return warnings in stdlib Fix unmatched_returns warnings in STDLIB and Kernel
Diffstat (limited to 'lib/kernel/src/disk_log_server.erl')
-rw-r--r--lib/kernel/src/disk_log_server.erl20
1 files changed, 15 insertions, 5 deletions
diff --git a/lib/kernel/src/disk_log_server.erl b/lib/kernel/src/disk_log_server.erl
index 8894ed87e8..684ea5b5db 100644
--- a/lib/kernel/src/disk_log_server.erl
+++ b/lib/kernel/src/disk_log_server.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%% Copyright Ericsson AB 1997-2013. All Rights Reserved.
%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
@@ -83,8 +83,8 @@ accessible_logs() ->
init([]) ->
process_flag(trap_exit, true),
- ets:new(?DISK_LOG_NAME_TABLE, [named_table, set]),
- ets:new(?DISK_LOG_PID_TABLE, [named_table, set]),
+ _ = ets:new(?DISK_LOG_NAME_TABLE, [named_table, set]),
+ _= ets:new(?DISK_LOG_PID_TABLE, [named_table, set]),
{ok, #state{}}.
handle_call({open, W, A}, From, State) ->
@@ -159,15 +159,25 @@ ensure_started() ->
undefined ->
LogSup = {disk_log_sup, {disk_log_sup, start_link, []}, permanent,
1000, supervisor, [disk_log_sup]},
- supervisor:start_child(kernel_safe_sup, LogSup),
+ {ok, _} = ensure_child_started(kernel_safe_sup, LogSup),
LogServer = {disk_log_server,
{disk_log_server, start_link, []},
permanent, 2000, worker, [disk_log_server]},
- supervisor:start_child(kernel_safe_sup, LogServer),
+ {ok, _} = ensure_child_started(kernel_safe_sup, LogServer),
ok;
_ -> ok
end.
+ensure_child_started(Sup,Child) ->
+ case supervisor:start_child(Sup, Child) of
+ {ok,Pid} ->
+ {ok,Pid};
+ {error,{already_started,Pid}} ->
+ {ok,Pid};
+ Error ->
+ Error
+ end.
+
open([{Req, From} | L], State) ->
State2 = case do_open(Req, From, State) of
{pending, State1} ->