diff options
| author | Matthias Radestock <matthias@lshift.net> | 2008-10-16 03:56:41 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@lshift.net> | 2008-10-16 03:56:41 +0100 |
| commit | 3a178fdb53ea33d652391ef16cb02f7d2b8b644c (patch) | |
| tree | e41f18c6e60a4d110c22c2987444b5d660eb2060 | |
| parent | f3e3f768d20b302c5cf0dc186b2d603bfadb5787 (diff) | |
| download | rabbitmq-server-git-3a178fdb53ea33d652391ef16cb02f7d2b8b644c.tar.gz | |
branch off for effect-less alarm handling
so we can later experiment with different effects
| -rw-r--r-- | src/rabbit_alarm.erl | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl index e71dda5930..be0f0cea2f 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) -> |
