diff options
| author | Michael Klishin <mklishin@pivotal.io> | 2016-08-17 01:30:34 +0300 |
|---|---|---|
| committer | Michael Klishin <mklishin@pivotal.io> | 2016-08-17 01:30:34 +0300 |
| commit | 9febe154c3f396cebee365543266bba3cb4b2c75 (patch) | |
| tree | 796302d0d0c4b2d1a9c42e74614b4d3e73b2a2c7 /src | |
| parent | e25e906d958b7cfdadda385da8ed865414fe8603 (diff) | |
| download | rabbitmq-server-git-9febe154c3f396cebee365543266bba3cb4b2c75.tar.gz | |
Combine map/2 and foldl/3
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_connection_tracking.erl | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/src/rabbit_connection_tracking.erl b/src/rabbit_connection_tracking.erl index 8220495a72..752bb885c5 100644 --- a/src/rabbit_connection_tracking.erl +++ b/src/rabbit_connection_tracking.erl @@ -243,12 +243,10 @@ is_over_connection_limit(VirtualHost) -> -spec count_connections_in(rabbit_types:vhost()) -> non_neg_integer(). count_connections_in(VirtualHost) -> - try - Ns = lists:map( - fun (Node) -> + lists:foldl(fun (Node, Acc) -> Tab = tracked_connection_per_vhost_table_name_for(Node), try - case mnesia:transaction( + N = case mnesia:transaction( fun() -> case mnesia:dirty_read({Tab, VirtualHost}) of [] -> 0; @@ -257,18 +255,15 @@ count_connections_in(VirtualHost) -> end) of {atomic, Val} -> Val; {aborted, _Reason} -> 0 - end - catch _ -> 0 - end - end, rabbit_mnesia:cluster_nodes(running)), - lists:foldl(fun(X, Acc) -> Acc + X end, 0, Ns) - catch - _:Err -> + end, + Acc + N + catch _:Err -> rabbit_log:error( - "Failed to fetch number of connections in vhost ~p:~n~p~n", - [VirtualHost, Err]), - 0 - end. + "Failed to fetch number of connections in vhost ~p on node ~p:~n~p~n", + [VirtualHost, Err, Node]), + Acc + end + end, 0, rabbit_mnesia:cluster_nodes(running)). %% Returns a #tracked_connection from connection_created %% event details. |
