You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by va...@apache.org on 2018/10/03 22:35:41 UTC
[couchdb] 05/05: Fix monitored_by fix for couch_file
This is an automated email from the ASF dual-hosted git repository.
vatamane pushed a commit to branch erlang-21-support
in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 38e5af60b1dd3facb1a5d90da0febd6a59d20f30
Author: Nick Vatamaniuc <va...@apache.org>
AuthorDate: Wed Oct 3 18:32:37 2018 -0400
Fix monitored_by fix for couch_file
---
src/couch/src/couch_file.erl | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/couch/src/couch_file.erl b/src/couch/src/couch_file.erl
index cfa07d8..247436f 100644
--- a/src/couch/src/couch_file.erl
+++ b/src/couch/src/couch_file.erl
@@ -695,20 +695,22 @@ split_iolist([Sublist| Rest], SplitAt, BeginAcc) when is_list(Sublist) ->
split_iolist([Byte | Rest], SplitAt, BeginAcc) when is_integer(Byte) ->
split_iolist(Rest, SplitAt - 1, [Byte | BeginAcc]).
+monitored_by_pids() ->
+ {monitored_by, PidsAndRefs} = process_info(self(), monitored_by),
+ lists:filter(fun is_pid/1, PidsAndRefs).
% System dbs aren't monitored by couch_stats_process_tracker
is_idle(#file{is_sys=true}) ->
- case process_info(self(), monitored_by) of
- {monitored_by, []} -> true;
+ case monitored_by_pids() of
+ [] -> true;
_ -> false
end;
is_idle(#file{is_sys=false}) ->
Tracker = whereis(couch_stats_process_tracker),
- {monitored_by, PidsAndRefs} = process_info(self(), monitored_by),
- case lists:filter(fun is_pid/1, PidsAndRefs) of
- {monitored_by, []} -> true;
- {monitored_by, [Tracker]} -> true;
- {monitored_by, [_]} -> exit(tracker_monitoring_failed);
+ case monitored_by_pids() of
+ [] -> true;
+ [Tracker] -> true;
+ [_] -> exit(tracker_monitoring_failed);
_ -> false
end.