diff options
author | John Högberg <[email protected]> | 2018-04-16 17:54:57 +0200 |
---|---|---|
committer | John Högberg <[email protected]> | 2018-04-16 17:59:12 +0200 |
commit | 6d281624128b5877283df2e91e2c116c3a142f16 (patch) | |
tree | 2fcbb4b3937ed06ea75f80b267c1cbbfa13414eb /erts/emulator | |
parent | 40dc6b9fed7d51a204e0d69b7bba7e8cb6496ae5 (diff) | |
download | otp-6d281624128b5877283df2e91e2c116c3a142f16.tar.gz otp-6d281624128b5877283df2e91e2c116c3a142f16.tar.bz2 otp-6d281624128b5877283df2e91e2c116c3a142f16.zip |
Disregard locks that can't be toggled in lcnt_SUITE
Diffstat (limited to 'erts/emulator')
-rw-r--r-- | erts/emulator/test/lcnt_SUITE.erl | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/erts/emulator/test/lcnt_SUITE.erl b/erts/emulator/test/lcnt_SUITE.erl index 4e52c2813c..dfffd662e2 100644 --- a/erts/emulator/test/lcnt_SUITE.erl +++ b/erts/emulator/test/lcnt_SUITE.erl @@ -87,8 +87,9 @@ wait_for_empty_lock_list() -> wait_for_empty_lock_list(10). wait_for_empty_lock_list(Tries) when Tries > 0 -> try_flush_cleanup_ops(), - case erts_debug:lcnt_collect() of - [{duration, _}, {locks, []}] -> + [{duration, _}, {locks, Locks}] = erts_debug:lcnt_collect(), + case remove_untoggleable_locks(Locks) of + [] -> ok; _ -> timer:sleep(50), @@ -124,7 +125,7 @@ toggle_lock_counting(Config) when is_list(Config) -> get_lock_info_for(Categories) when is_list(Categories) -> ok = erts_debug:lcnt_control(mask, Categories), [{duration, _}, {locks, Locks}] = erts_debug:lcnt_collect(), - Locks; + remove_untoggleable_locks(Locks); get_lock_info_for(Category) when is_atom(Category) -> get_lock_info_for([Category]). @@ -178,3 +179,13 @@ registered_db_tables(Config) when is_list(Config) -> (_Lock) -> false end, DbLocks), ok. + +%% Not all locks can be toggled on or off due to technical limitations, so we +%% need to filter them out when checking whether we successfully disabled lock +%% counting. +remove_untoggleable_locks([]) -> + []; +remove_untoggleable_locks([{resource_monitors, _, _, _} | T]) -> + remove_untoggleable_locks(T); +remove_untoggleable_locks([H | T]) -> + [H | remove_untoggleable_locks(T)]. |