summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2012-11-06 12:46:15 +0000
committerSimon MacMullen <simon@rabbitmq.com>2012-11-06 12:46:15 +0000
commit2fe207ca62b74de667a32740c28689454bb2b515 (patch)
treeca749c9ea83f671912833b124af48d38cd18ffd2
parent0444acb2f8966bbbb6a8f0270a3a364151ac94ae (diff)
downloadrabbitmq-server-2fe207ca62b74de667a32740c28689454bb2b515.tar.gz
Simplify
-rw-r--r--src/rabbit_alarm.erl17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl
index 7b706bd8..183bb538 100644
--- a/src/rabbit_alarm.erl
+++ b/src/rabbit_alarm.erl
@@ -18,7 +18,7 @@
-behaviour(gen_event).
--export([start_link/0, start/0, stop/0, register/2, set_alarm/1, set_alarm_gc/1,
+-export([start_link/0, start/0, stop/0, register/2, set_alarm/1,
clear_alarm/1, get_alarms/0, on_node_up/1, on_node_down/1]).
-export([init/1, handle_call/2, handle_event/2, handle_info/2,
@@ -38,7 +38,6 @@
-spec(start/0 :: () -> 'ok').
-spec(stop/0 :: () -> 'ok').
-spec(register/2 :: (pid(), rabbit_types:mfargs()) -> boolean()).
--spec(set_alarm_gc/1 :: (any()) -> 'ok').
-spec(set_alarm/1 :: (any()) -> 'ok').
-spec(clear_alarm/1 :: (any()) -> 'ok').
-spec(on_node_up/1 :: (node()) -> 'ok').
@@ -56,8 +55,10 @@ start() ->
ok = gen_event:add_handler(?SERVER, ?MODULE, []),
{ok, MemoryWatermark} = application:get_env(vm_memory_high_watermark),
rabbit_sup:start_restartable_child(
- vm_memory_monitor, [MemoryWatermark, fun rabbit_alarm:set_alarm_gc/1,
- fun rabbit_alarm:clear_alarm/1]),
+ vm_memory_monitor, [MemoryWatermark, fun (Alarm) ->
+ gc_all(),
+ set_alarm(Alarm)
+ end, fun clear_alarm/1]),
{ok, DiskLimit} = application:get_env(disk_free_limit),
rabbit_sup:start_restartable_child(rabbit_disk_monitor, [DiskLimit]),
ok.
@@ -68,10 +69,8 @@ register(Pid, HighMemMFA) ->
gen_event:call(?SERVER, ?MODULE, {register, Pid, HighMemMFA},
infinity).
-set_alarm_gc(Alarm) -> [erlang:garbage_collect(P) || P <- processes()],
- set_alarm(Alarm).
-set_alarm(Alarm) -> gen_event:notify(?SERVER, {set_alarm, Alarm}).
-clear_alarm(Alarm) -> gen_event:notify(?SERVER, {clear_alarm, Alarm}).
+set_alarm(Alarm) -> gen_event:notify(?SERVER, {set_alarm, Alarm}).
+clear_alarm(Alarm) -> gen_event:notify(?SERVER, {clear_alarm, Alarm}).
get_alarms() -> gen_event:call(?SERVER, ?MODULE, get_alarms, infinity).
@@ -228,3 +227,5 @@ handle_clear_alarm(file_descriptor_limit, State) ->
handle_clear_alarm(Alarm, State) ->
rabbit_log:warning("alarm '~p' cleared~n", [Alarm]),
{ok, State}.
+
+gc_all() -> [erlang:garbage_collect(P) || P <- processes()].