diff options
| author | Matthias Radestock <matthias@rabbitmq.com> | 2013-01-10 15:38:28 +0000 |
|---|---|---|
| committer | Matthias Radestock <matthias@rabbitmq.com> | 2013-01-10 15:38:28 +0000 |
| commit | 558a162cd2f02b8599a24e5cde0eb75ff3f257cc (patch) | |
| tree | 4ca4868dd73086aa2042ecb1d3025766fb39b184 | |
| parent | 6a1911d8d51727ff1e882af43bb221f6ba4714ac (diff) | |
| parent | 6ae7799ae252bbaebbff8f161b100f1312f86a1c (diff) | |
| download | rabbitmq-server-git-558a162cd2f02b8599a24e5cde0eb75ff3f257cc.tar.gz | |
merge default into bug25191
and some tiny refactoring
| -rw-r--r-- | src/rabbit_alarm.erl | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl index 55b71820d9..198325cc55 100644 --- a/src/rabbit_alarm.erl +++ b/src/rabbit_alarm.erl @@ -67,9 +67,8 @@ start() -> stop() -> ok. -register(Pid, HighMemMFA) -> - gen_event:call(?SERVER, ?MODULE, {register, Pid, HighMemMFA}, - infinity). +register(Pid, AlertMFA) -> + gen_event:call(?SERVER, ?MODULE, {register, Pid, AlertMFA}, infinity). set_alarm(Alarm) -> gen_event:notify(?SERVER, {set_alarm, Alarm}). clear_alarm(Alarm) -> gen_event:notify(?SERVER, {clear_alarm, Alarm}). @@ -94,10 +93,9 @@ init([]) -> alarmed_nodes = dict:new(), alarms = []}}. -handle_call({register, Pid, HighMemMFA}, State = #alarms{alarmed_nodes = AN}) -> - Vs = [V || {_, V} <- dict:to_list(AN)], - {ok, lists:usort(lists:append(Vs)), - internal_register(Pid, HighMemMFA, State)}; +handle_call({register, Pid, AlertMFA}, State = #alarms{alarmed_nodes = AN}) -> + {ok, lists:usort(lists:append([V || {_, V} <- dict:to_list(AN)])), + internal_register(Pid, AlertMFA, State)}; handle_call(get_alarms, State = #alarms{alarms = Alarms}) -> {ok, Alarms, State}; @@ -122,8 +120,8 @@ handle_event({node_up, Node}, State) -> handle_event({node_down, Node}, State) -> {ok, maybe_alert(fun dict_unappend_all/3, Node, [], State)}; -handle_event({register, Pid, HighMemMFA}, State) -> - {ok, internal_register(Pid, HighMemMFA, State)}; +handle_event({register, Pid, AlertMFA}, State) -> + {ok, internal_register(Pid, AlertMFA, State)}; handle_event(_Event, State) -> {ok, State}. @@ -199,14 +197,14 @@ alert(Alertees, Source, Alert, NodeComparator) -> end end, ok, Alertees). -internal_register(Pid, {M, F, A} = HighMemMFA, +internal_register(Pid, {M, F, A} = AlertMFA, State = #alarms{alertees = Alertees}) -> _MRef = erlang:monitor(process, Pid), case dict:find(node(), State#alarms.alarmed_nodes) of {ok, Sources} -> [apply(M, F, A ++ [Pid, R, true]) || R <- Sources]; error -> ok end, - NewAlertees = dict:store(Pid, HighMemMFA, Alertees), + NewAlertees = dict:store(Pid, AlertMFA, Alertees), State#alarms{alertees = NewAlertees}. handle_set_alarm({{resource_limit, Source, Node}, []}, State) -> |
