diff options
| author | Matthias Radestock <matthias@rabbitmq.com> | 2012-09-25 14:04:34 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@rabbitmq.com> | 2012-09-25 14:04:34 +0100 |
| commit | 01dbe432a5e7287fda5fc9f9e9f394cc2da55635 (patch) | |
| tree | 6b3c5018831ef18d47770940a330b4aabd76c1fa | |
| parent | a9737143118b90ee7f1c515aa3d47855c5b824da (diff) | |
| download | rabbitmq-server-git-01dbe432a5e7287fda5fc9f9e9f394cc2da55635.tar.gz | |
replace cluster_multicall with gen_server:abcast
| -rw-r--r-- | src/rabbit_node_monitor.erl | 43 |
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; |
