aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Högberg <[email protected]>2018-02-13 09:46:35 +0100
committerJohn Högberg <[email protected]>2018-02-13 09:46:35 +0100
commit78baf69b8b37b543f419fcd5a606cba2c60abea0 (patch)
treeb2eea7a8bee9cb2a7d1673418350d9674d93d833
parentee477c8d88d2139035c503e97e42e88fe500170f (diff)
parentab965710d014912cbd3c4ef8f9c3acc0dffa1d30 (diff)
downloadotp-78baf69b8b37b543f419fcd5a606cba2c60abea0.tar.gz
otp-78baf69b8b37b543f419fcd5a606cba2c60abea0.tar.bz2
otp-78baf69b8b37b543f419fcd5a606cba2c60abea0.zip
Merge branch 'john/tools/autostart-lcnt-server/ERIERL-134/OTP-14913' into maint
-rw-r--r--lib/tools/src/lcnt.erl7
-rw-r--r--lib/tools/test/lcnt_SUITE.erl8
2 files changed, 11 insertions, 4 deletions
diff --git a/lib/tools/src/lcnt.erl b/lib/tools/src/lcnt.erl
index 139b3d8a4a..20b031a7ad 100644
--- a/lib/tools/src/lcnt.erl
+++ b/lib/tools/src/lcnt.erl
@@ -218,9 +218,11 @@ raw() -> call(raw).
set(Option, Value) -> call({set, Option, Value}).
set({Option, Value}) -> call({set, Option, Value}).
save(Filename) -> call({save, Filename}).
-load(Filename) -> ok = start_internal(), call({load, Filename}).
+load(Filename) -> call({load, Filename}).
-call(Msg) -> gen_server:call(?MODULE, Msg, infinity).
+call(Msg) ->
+ ok = start_internal(),
+ gen_server:call(?MODULE, Msg, infinity).
%% -------------------------------------------------------------------- %%
%%
@@ -237,7 +239,6 @@ apply(Fun) when is_function(Fun) ->
lcnt:apply(Fun, []).
apply(Fun, As) when is_function(Fun) ->
- ok = start_internal(),
Opt = lcnt:rt_opt({copy_save, true}),
lcnt:clear(),
Res = erlang:apply(Fun, As),
diff --git a/lib/tools/test/lcnt_SUITE.erl b/lib/tools/test/lcnt_SUITE.erl
index 146c915087..4a92abb5c8 100644
--- a/lib/tools/test/lcnt_SUITE.erl
+++ b/lib/tools/test/lcnt_SUITE.erl
@@ -30,6 +30,7 @@
t_conflicts/1,
t_locations/1,
t_swap_keys/1,
+ t_implicit_start/1,
smoke_lcnt/1]).
init_per_testcase(_Case, Config) ->
@@ -44,7 +45,7 @@ suite() ->
{timetrap,{minutes,4}}].
all() ->
- [t_load, t_conflicts, t_locations, t_swap_keys,
+ [t_load, t_conflicts, t_locations, t_swap_keys, t_implicit_start,
smoke_lcnt].
%%----------------------------------------------------------------------
@@ -149,6 +150,11 @@ t_swap_keys_file([File|Files]) ->
ok = lcnt:stop(),
t_swap_keys_file(Files).
+%% Prior to OTP-14913 this would crash with 'noproc' as the lcnt server hadn't
+%% been started yet.
+t_implicit_start(Config) when is_list(Config) ->
+ ok = lcnt:conflicts().
+
%% Simple smoke test of actual lock-counting, if running on
%% a run-time with lock-counting enabled.
smoke_lcnt(Config) ->