summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2012-09-25 14:04:34 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2012-09-25 14:04:34 +0100
commit01dbe432a5e7287fda5fc9f9e9f394cc2da55635 (patch)
tree6b3c5018831ef18d47770940a330b4aabd76c1fa
parenta9737143118b90ee7f1c515aa3d47855c5b824da (diff)
downloadrabbitmq-server-git-01dbe432a5e7287fda5fc9f9e9f394cc2da55635.tar.gz
replace cluster_multicall with gen_server:abcast
-rw-r--r--src/rabbit_node_monitor.erl43
1 files changed, 12 insertions, 31 deletions
diff --git a/src/rabbit_node_monitor.erl b/src/rabbit_node_monitor.erl
index 096df8482b..b372d4e74d 100644
--- a/src/rabbit_node_monitor.erl
+++ b/src/rabbit_node_monitor.erl
@@ -25,9 +25,6 @@
update_cluster_status/0, reset_cluster_status/0]).
-export([notify_joined_cluster/0, notify_left_cluster/1, notify_node_up/0]).
-%% internal
--export([joined_cluster/2, left_cluster/1, node_up/2]).
-
%% gen_server callbacks
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2,
code_change/3]).
@@ -147,33 +144,28 @@ reset_cluster_status() ->
%%----------------------------------------------------------------------------
notify_joined_cluster() ->
- cluster_multicall(joined_cluster, [node(), rabbit_mnesia:node_type()]),
+ Nodes = rabbit_mnesia:cluster_nodes(running) -- [node()],
+ gen_server:abcast(Nodes, ?SERVER,
+ {joined_cluster, node(), rabbit_mnesia:node_type()}),
ok.
notify_left_cluster(Node) ->
- left_cluster(Node),
- cluster_multicall(left_cluster, [Node]),
+ Nodes = rabbit_mnesia:cluster_nodes(running),
+ gen_server:abcast(Nodes, ?SERVER, {left_cluster, Node}),
ok.
notify_node_up() ->
- Nodes = cluster_multicall(node_up, [node(), rabbit_mnesia:node_type()]),
+ Nodes = rabbit_mnesia:cluster_nodes(running) -- [node()],
+ gen_server:abcast(Nodes, ?SERVER,
+ {node_up, node(), rabbit_mnesia:node_type()}),
%% register other active rabbits with this rabbit
DiskNodes = rabbit_mnesia:cluster_nodes(disc),
- [node_up(N, case lists:member(N, DiskNodes) of
- true -> disc;
- false -> ram
- end) || N <- Nodes],
+ [gen_server:cast(?SERVER, {node_up, N, case lists:member(N, DiskNodes) of
+ true -> disc;
+ false -> ram
+ end}) || N <- Nodes],
ok.
-joined_cluster(Node, NodeType) ->
- gen_server:cast(?SERVER, {joined_cluster, Node, NodeType}).
-
-left_cluster(Node) ->
- gen_server:cast(?SERVER, {left_cluster, Node}).
-
-node_up(Node, NodeType) ->
- gen_server:cast(?SERVER, {node_up, Node, NodeType}).
-
%%----------------------------------------------------------------------------
%% gen_server callbacks
%%----------------------------------------------------------------------------
@@ -260,17 +252,6 @@ try_read_file(FileName) ->
{error, E} -> throw({error, {cannot_read_file, FileName, E}})
end.
-cluster_multicall(Fun, Args) ->
- Node = node(),
- Nodes = rabbit_mnesia:cluster_nodes(running) -- [Node],
- %% notify other rabbits of this cluster
- case rpc:multicall(Nodes, rabbit_node_monitor, Fun, Args,
- ?RABBIT_UP_RPC_TIMEOUT) of
- {_, [] } -> ok;
- {_, Bad} -> rabbit_log:info("failed to contact nodes ~p~n", [Bad])
- end,
- Nodes.
-
is_already_monitored(Item) ->
{monitors, Monitors} = process_info(self(), monitors),
lists:any(fun ({_, Item1}) when Item =:= Item1 -> true;