summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexandru Scvortov <alexandru@rabbitmq.com>2011-08-15 16:00:50 +0100
committerAlexandru Scvortov <alexandru@rabbitmq.com>2011-08-15 16:00:50 +0100
commitaa89617adf819aea261b4a3e8eeaade1e78c6e79 (patch)
treee6628164e4fc4d08e6150e11a0caa502a1d10983 /src
parent02228954e49afafdd8f4305d198ede89d8574130 (diff)
downloadrabbitmq-server-git-aa89617adf819aea261b4a3e8eeaade1e78c6e79.tar.gz
refactor
The sets thing is probably slower, but it isn't run that often.
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_mnesia.erl5
-rw-r--r--src/rabbit_node_monitor.erl2
2 files changed, 4 insertions, 3 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index 3f378c3cda..e33b3574b6 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -772,8 +772,9 @@ on_node_down(Node) ->
end.
is_only_disc_node(Node, _MnesiaRunning = true) ->
- OfflineDiscNodes = nodes_of_type(disc_copies) -- running_clustered_nodes(),
- [Node] =:= nodes_of_type(disc_copies) -- OfflineDiscNodes;
+ RunningSet = sets:from_list(running_clustered_nodes()),
+ DiscSet = sets:from_list(nodes_of_type(disc_copies)),
+ [Node] =:= sets:to_list(sets:intersection(RunningSet, DiscSet));
is_only_disc_node(Node, false) ->
start_mnesia(),
Res = is_only_disc_node(Node, true),
diff --git a/src/rabbit_node_monitor.erl b/src/rabbit_node_monitor.erl
index 98b9aa3750..cb4f826d8c 100644
--- a/src/rabbit_node_monitor.erl
+++ b/src/rabbit_node_monitor.erl
@@ -67,6 +67,7 @@ handle_call(_Request, _From, State) ->
handle_cast({rabbit_running_on, Node}, State) ->
rabbit_log:info("rabbit on ~p up~n", [Node]),
+ erlang:monitor(process, {rabbit, Node}),
ok = handle_live_rabbit(Node),
{noreply, State};
handle_cast(_Msg, State) ->
@@ -97,6 +98,5 @@ handle_dead_rabbit(Node) ->
ok = rabbit_mnesia:on_node_down(Node).
handle_live_rabbit(Node) ->
- erlang:monitor(process, {rabbit, Node}),
ok = rabbit_alarm:on_node_up(Node),
ok = rabbit_mnesia:on_node_up(Node).