summaryrefslogtreecommitdiff
path: root/src/rabbit.erl
diff options
context:
space:
mode:
authorMichael Bridgen <mikeb@lshift.net>2009-11-04 11:56:02 +0000
committerMichael Bridgen <mikeb@lshift.net>2009-11-04 11:56:02 +0000
commit997ca6aa36dbec1e46321bb626c8e3e8e6193f10 (patch)
tree72c46d142c65249e46a1252a4a3dafc0fcd6d2bc /src/rabbit.erl
parent11b5c08721455051fef2dc547510a087c87ae9ea (diff)
parent3394efabb87ad14d20a8df7bd681345658594e09 (diff)
downloadrabbitmq-server-git-997ca6aa36dbec1e46321bb626c8e3e8e6193f10.tar.gz
Merge from default to get, among other things, better memory management and synchronous auto_deletes
Diffstat (limited to 'src/rabbit.erl')
-rw-r--r--src/rabbit.erl17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index acc8f84ae9..3906f2f76d 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -140,8 +140,16 @@ start(normal, []) ->
ok = rabbit_binary_generator:
check_empty_content_body_frame_size(),
- {ok, MemoryAlarms} = application:get_env(memory_alarms),
- ok = rabbit_alarm:start(MemoryAlarms),
+ ok = rabbit_alarm:start(),
+ MemoryWatermark =
+ application:get_env(os_mon, vm_memory_high_watermark),
+ ok = case MemoryWatermark of
+ {ok, Float} when Float == 0 -> ok;
+ {ok, Float} -> start_child(vm_memory_monitor, [Float]);
+ undefined ->
+ throw({undefined, os_mon,
+ vm_memory_high_watermark, settings})
+ end,
ok = rabbit_amqqueue:start(),
@@ -265,8 +273,11 @@ print_banner() ->
io:nl().
start_child(Mod) ->
+ start_child(Mod, []).
+
+start_child(Mod, Args) ->
{ok,_} = supervisor:start_child(rabbit_sup,
- {Mod, {Mod, start_link, []},
+ {Mod, {Mod, start_link, Args},
transient, 100, worker, [Mod]}),
ok.