diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2011-03-04 08:11:07 +0000 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2011-03-04 08:11:07 +0000 |
commit | ffd695bed82709c57064fcaf46606b607e474140 (patch) | |
tree | a25ba483f442dfdf7737130e3147ebcc08dd4f34 | |
parent | 4a3a2daaed541572a5ae37a950f14964645305f1 (diff) | |
download | rabbitmq-server-ffd695bed82709c57064fcaf46606b607e474140.tar.gz |
simplify
-rw-r--r-- | src/rabbit_alarm.erl | 29 |
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). |