summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_alarm.erl7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl
index e6625b2b..2f182423 100644
--- a/src/rabbit_alarm.erl
+++ b/src/rabbit_alarm.erl
@@ -55,8 +55,9 @@ 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/1,
- fun rabbit_alarm:clear_alarm/1]),
+ vm_memory_monitor, [MemoryWatermark,
+ fun (Alarm) -> R = set_alarm(Alarm), gc(), R end,
+ fun clear_alarm/1]),
{ok, DiskLimit} = application:get_env(disk_free_limit),
rabbit_sup:start_restartable_child(rabbit_disk_monitor, [DiskLimit]),
ok.
@@ -225,3 +226,5 @@ handle_clear_alarm(file_descriptor_limit, State) ->
handle_clear_alarm(Alarm, State) ->
rabbit_log:warning("alarm '~p' cleared~n", [Alarm]),
{ok, State}.
+
+gc() -> [erlang:garbage_collect(P) || P <- processes()].