From 38a6518f6e790ff48f3efb0ab64564154a69ba77 Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Thu, 16 Oct 2008 03:56:41 +0100 Subject: branch off for effect-less alarm handling so we can later experiment with different effects --- src/rabbit_alarm.erl | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl index e71dda59..be0f0cea 100644 --- a/src/rabbit_alarm.erl +++ b/src/rabbit_alarm.erl @@ -34,6 +34,8 @@ -define(MEMSUP_CHECK_INTERVAL, 1000). +-record(alarms, {system_memory_high_watermark = false}). + %%---------------------------------------------------------------------------- -ifdef(use_specs). @@ -53,6 +55,11 @@ start() -> %% a granularity of minutes. So we have to peel off one layer of %% the API to get to the underlying layer which operates at the %% granularity of milliseconds. + %% + %% Note that the new setting will only take effect after the first + %% check has completed, i.e. after one minute. So if rabbit eats + %% all the memory within the first minute after startup then we + %% are out of luck. ok = os_mon:call(memsup, {set_check_interval, ?MEMSUP_CHECK_INTERVAL}, infinity), @@ -64,12 +71,18 @@ stop() -> %%---------------------------------------------------------------------------- init([]) -> - {ok, none}. + {ok, #alarms{}}. handle_call(_Request, State) -> {ok, not_understood, State}. -handle_event(Event, State) -> +handle_event({set_alarm, {system_memory_high_watermark, []}}, State) -> + {ok, State#alarms{system_memory_high_watermark = true}}; + +handle_event({clear_alarm, system_memory_high_watermark}, State) -> + {ok, State#alarms{system_memory_high_watermark = false}}; + +handle_event(_Event, State) -> {ok, State}. handle_info(_Info, State) -> -- cgit v1.2.1 From 7957aefe8fe9f1aa99e84099ed1c954f3afbf1e8 Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Thu, 16 Oct 2008 04:00:11 +0100 Subject: cosmetic --- src/rabbit_alarm.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl index be0f0cea..752ac14b 100644 --- a/src/rabbit_alarm.erl +++ b/src/rabbit_alarm.erl @@ -35,7 +35,7 @@ -define(MEMSUP_CHECK_INTERVAL, 1000). -record(alarms, {system_memory_high_watermark = false}). - + %%---------------------------------------------------------------------------- -ifdef(use_specs). -- cgit v1.2.1