summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2011-03-04 08:11:07 +0000
committerMatthias Radestock <matthias@rabbitmq.com>2011-03-04 08:11:07 +0000
commitffd695bed82709c57064fcaf46606b607e474140 (patch)
treea25ba483f442dfdf7737130e3147ebcc08dd4f34
parent4a3a2daaed541572a5ae37a950f14964645305f1 (diff)
downloadrabbitmq-server-ffd695bed82709c57064fcaf46606b607e474140.tar.gz
simplify
-rw-r--r--src/rabbit_alarm.erl29
1 files changed, 12 insertions, 17 deletions
diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl
index 508da5ee..34cc4d3c 100644
--- a/src/rabbit_alarm.erl
+++ b/src/rabbit_alarm.erl
@@ -86,19 +86,11 @@ handle_call({register, Pid, HighMemMFA}, State) ->
handle_call(_Request, State) ->
{ok, not_understood, State}.
-handle_event({set_alarm, {{vm_memory_high_watermark, Node}, []}},
- State = #alarms{alarmed_nodes = AN,
- alertees = Alertees}) ->
- AN1 = sets:add_element(Node, AN),
- ok = maybe_alert(sets:size(AN), sets:size(AN1), Alertees, Node),
- {ok, State#alarms{alarmed_nodes = AN1}};
+handle_event({set_alarm, {{vm_memory_high_watermark, Node}, []}}, State) ->
+ {ok, maybe_alert(fun sets:add_element/2, Node, State)};
-handle_event({clear_alarm, {vm_memory_high_watermark, Node}},
- State = #alarms{alarmed_nodes = AN,
- alertees = Alertees}) ->
- AN1 = sets:del_element(Node, AN),
- ok = maybe_alert(sets:size(AN), sets:size(AN1), Alertees, Node),
- {ok, State#alarms{alarmed_nodes = AN1}};
+handle_event({clear_alarm, {vm_memory_high_watermark, Node}}, State) ->
+ {ok, maybe_alert(fun sets:del_element/2, Node, State)};
handle_event({node_up, Node}, State) ->
%% Must do this via notify and not call to avoid possible deadlock.
@@ -107,11 +99,8 @@ handle_event({node_up, Node}, State) ->
{register, self(), {?MODULE, remote_conserve_memory, []}}),
{ok, State};
-handle_event({node_down, Node}, State = #alarms{alarmed_nodes = AN,
- alertees = Alertees}) ->
- AN1 = sets:del_element(Node, AN),
- ok = maybe_alert(sets:size(AN), sets:size(AN1), Alertees, Node),
- {ok, State#alarms{alarmed_nodes = AN1}};
+handle_event({node_down, Node}, State) ->
+ {ok, maybe_alert(fun sets:del_element/2, Node, State)};
handle_event({register, Pid, HighMemMFA}, State) ->
{ok, internal_register(Pid, HighMemMFA, State)};
@@ -134,6 +123,12 @@ code_change(_OldVsn, State, _Extra) ->
%%----------------------------------------------------------------------------
+maybe_alert(SetFun, Node, State = #alarms{alarmed_nodes = AN,
+ alertees = Alertees}) ->
+ AN1 = SetFun(Node, AN),
+ ok = maybe_alert(sets:size(AN), sets:size(AN1), Alertees, Node),
+ State#alarms{alarmed_nodes = AN1}.
+
maybe_alert(BeforeSize, AfterSize, Alertees, AlmNde) ->
ok = maybe_alert_remote(BeforeSize, AfterSize, Alertees, AlmNde =:= node()),
ok = maybe_alert_local(BeforeSize, AfterSize, Alertees).