summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@lshift.net>2009-01-06 17:23:59 +0000
committerMatthias Radestock <matthias@lshift.net>2009-01-06 17:23:59 +0000
commitd5571e3a410d7ca69b862d6ddccc4fea65ce9b9c (patch)
tree4495cd2ee124be66c2baee6c56f23ae91db6baa2
parent0e47200c11c7c1849e2a5aef44509496118ca819 (diff)
downloadrabbitmq-server-bug20020.tar.gz
enable memory alarms by default on linuxbug20020
-rw-r--r--ebin/rabbit.app2
-rw-r--r--src/rabbit_alarm.erl14
2 files changed, 12 insertions, 4 deletions
diff --git a/ebin/rabbit.app b/ebin/rabbit.app
index 70a13208..0d714fdf 100644
--- a/ebin/rabbit.app
+++ b/ebin/rabbit.app
@@ -54,4 +54,4 @@
{default_user, <<"guest">>},
{default_pass, <<"guest">>},
{default_vhost, <<"/">>},
- {memory_alarms, false}]}]}.
+ {memory_alarms, auto}]}]}.
diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl
index 7bbed8b7..dee71d23 100644
--- a/src/rabbit_alarm.erl
+++ b/src/rabbit_alarm.erl
@@ -40,6 +40,9 @@
-define(MEMSUP_CHECK_INTERVAL, 1000).
+%% OSes on which we know memory alarms to be trustworthy
+-define(SUPPORTED_OS, [{unix, linux}]).
+
-record(alarms, {alertees, system_memory_high_watermark = false}).
%%----------------------------------------------------------------------------
@@ -47,7 +50,7 @@
-ifdef(use_specs).
-type(mfa_tuple() :: {atom(), atom(), list()}).
--spec(start/1 :: (bool()) -> 'ok').
+-spec(start/1 :: (bool() | 'auto') -> 'ok').
-spec(stop/0 :: () -> 'ok').
-spec(register/2 :: (pid(), mfa_tuple()) -> 'ok').
@@ -56,9 +59,14 @@
%%----------------------------------------------------------------------------
start(MemoryAlarms) ->
- ok = alarm_handler:add_alarm_handler(?MODULE, [MemoryAlarms]),
+ EnableAlarms = case MemoryAlarms of
+ true -> true;
+ false -> false;
+ auto -> lists:member(os:type(), ?SUPPORTED_OS)
+ end,
+ ok = alarm_handler:add_alarm_handler(?MODULE, [EnableAlarms]),
case whereis(memsup) of
- undefined -> if MemoryAlarms -> ok = start_memsup(),
+ undefined -> if EnableAlarms -> ok = start_memsup(),
ok = adjust_memsup_interval();
true -> ok
end;