summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2010-03-08 17:34:34 +0000
committerMatthew Sackman <matthew@lshift.net>2010-03-08 17:34:34 +0000
commiteae0845e8829aeadd8b65b776e0108081bde27f9 (patch)
treea8c54f045891548b3e45130dc11cb0950432736e
parentb9790f78efd60c1a9f525998d4260002122cae99 (diff)
parent107adaa41c70b749999cf97a4f7c5f0234ed10a1 (diff)
downloadrabbitmq-server-git-eae0845e8829aeadd8b65b776e0108081bde27f9.tar.gz
Merge default into bug 21673
-rw-r--r--generate_deps3
-rw-r--r--include/rabbit.hrl2
-rw-r--r--src/pg_local.erl2
-rw-r--r--src/rabbit.erl12
-rw-r--r--src/rabbit_alarm.erl8
-rw-r--r--src/rabbit_amqqueue.erl2
-rw-r--r--src/rabbit_multi.erl4
-rw-r--r--src/rabbit_networking.erl8
-rw-r--r--src/rabbit_restartable_sup.erl21
-rw-r--r--src/rabbit_sup.erl27
-rw-r--r--src/tcp_listener_sup.erl2
11 files changed, 48 insertions, 43 deletions
diff --git a/generate_deps b/generate_deps
index 916006d101..e16624d2d4 100644
--- a/generate_deps
+++ b/generate_deps
@@ -35,7 +35,8 @@ main([IncludeDir, ErlDir, EbinDir, TargetFile]) ->
detect_deps(IncludeDir, EbinDir, Modules, Headers, Path) ->
{ok, Forms} = epp:parse_file(Path, [IncludeDir], [{use_specs, true}]),
lists:foldl(
- fun ({attribute, _LineNumber, behaviour, Behaviour}, Deps) ->
+ fun ({attribute, _LineNumber, Attribute, Behaviour}, Deps)
+ when Attribute =:= behaviour orelse Attribute =:= behavior ->
case sets:is_element(Behaviour, Modules) of
true -> sets:add_element(
[EbinDir, "/", atom_to_list(Behaviour), ".beam"],
diff --git a/include/rabbit.hrl b/include/rabbit.hrl
index 59eff8c798..df282029e5 100644
--- a/include/rabbit.hrl
+++ b/include/rabbit.hrl
@@ -175,6 +175,8 @@
-define(COPYRIGHT_MESSAGE, "Copyright (C) 2007-2010 LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.").
-define(INFORMATION_MESSAGE, "Licensed under the MPL. See http://www.rabbitmq.com/").
+-define(MAX_WAIT, 16#ffffffff).
+
-ifdef(debug).
-define(LOGDEBUG0(F), rabbit_log:debug(F)).
-define(LOGDEBUG(F,A), rabbit_log:debug(F,A)).
diff --git a/src/pg_local.erl b/src/pg_local.erl
index fa41fe46b3..1501331d6b 100644
--- a/src/pg_local.erl
+++ b/src/pg_local.erl
@@ -206,7 +206,7 @@ ensure_started() ->
case whereis(?MODULE) of
undefined ->
C = {pg_local, {?MODULE, start_link, []}, permanent,
- 1000, worker, [?MODULE]},
+ 16#ffffffff, worker, [?MODULE]},
supervisor:start_child(kernel_safe_sup, C);
PgLocalPid ->
{ok, PgLocalPid}
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 6203630ede..3b07f6e663 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -61,7 +61,7 @@
-rabbit_boot_step({rabbit_log,
[{description, "logging server"},
- {mfa, {rabbit_restartable_sup, start_child,
+ {mfa, {rabbit_sup, start_restartable_child,
[rabbit_log]}},
{enables, kernel_ready}]}).
@@ -72,7 +72,7 @@
-rabbit_boot_step({file_handle_cache,
[{description, "file handle cache server"},
- {mfa, {rabbit_restartable_sup, start_child,
+ {mfa, {rabbit_sup, start_restartable_child,
[file_handle_cache]}},
{enables, kernel_ready}]}).
@@ -87,28 +87,28 @@
-rabbit_boot_step({rabbit_memory_monitor,
[{description, "memory moniter"},
- {mfa, {rabbit_restartable_sup, start_child,
+ {mfa, {rabbit_sup, start_restartable_child,
[rabbit_memory_monitor]}},
{requires, rabbit_alarm},
{enables, core_initialized}]}).
-rabbit_boot_step({guid_generator,
[{description, "guid generator"},
- {mfa, {rabbit_restartable_sup, start_child,
+ {mfa, {rabbit_sup, start_restartable_child,
[rabbit_guid]}},
{requires, kernel_ready},
{enables, core_initialized}]}).
-rabbit_boot_step({rabbit_router,
[{description, "cluster router"},
- {mfa, {rabbit_restartable_sup, start_child,
+ {mfa, {rabbit_sup, start_restartable_child,
[rabbit_router]}},
{requires, kernel_ready},
{enables, core_initialized}]}).
-rabbit_boot_step({rabbit_node_monitor,
[{description, "node monitor"},
- {mfa, {rabbit_restartable_sup, start_child,
+ {mfa, {rabbit_sup, start_restartable_child,
[rabbit_node_monitor]}},
{requires, kernel_ready},
{enables, core_initialized}]}).
diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl
index d5d245aaa1..7e96d9a3a8 100644
--- a/src/rabbit_alarm.erl
+++ b/src/rabbit_alarm.erl
@@ -57,11 +57,9 @@ start() ->
ok = alarm_handler:add_alarm_handler(?MODULE, []),
{ok, MemoryWatermark} = application:get_env(vm_memory_high_watermark),
ok = case MemoryWatermark == 0 of
- true ->
- ok;
- false ->
- rabbit_restartable_sup:start_child(vm_memory_monitor,
- [MemoryWatermark])
+ true -> ok;
+ false -> rabbit_sup:start_restartable_child(vm_memory_monitor,
+ [MemoryWatermark])
end,
ok.
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index 0b8a7d1049..e333a43b9d 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -135,7 +135,7 @@ start() ->
DurableQueues = find_durable_queues(),
ok = rabbit_queue_index:start_msg_store(DurableQueues),
{ok,_} = supervisor:start_child(
- rabbit_restartable_sup,
+ rabbit_sup,
{rabbit_amqqueue_sup,
{rabbit_amqqueue_sup, start_link, []},
transient, infinity, supervisor, [rabbit_amqqueue_sup]}),
diff --git a/src/rabbit_multi.erl b/src/rabbit_multi.erl
index 9cb2c03cd7..7c56ae3dda 100644
--- a/src/rabbit_multi.erl
+++ b/src/rabbit_multi.erl
@@ -50,8 +50,8 @@
start() ->
RpcTimeout =
case init:get_argument(maxwait) of
- {ok, [[N1]]} -> 1000 * list_to_integer(N1);
- _ -> 16#ffffffff %% max allowed value according to docs
+ {ok,[[N1]]} -> 1000 * list_to_integer(N1);
+ _ -> ?MAX_WAIT
end,
case init:get_plain_arguments() of
[] ->
diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl
index 4d3197064c..7978573d90 100644
--- a/src/rabbit_networking.erl
+++ b/src/rabbit_networking.erl
@@ -109,7 +109,7 @@ boot_ssl() ->
start() ->
{ok,_} = supervisor:start_child(
- rabbit_restartable_sup,
+ rabbit_sup,
{rabbit_tcp_client_sup,
{tcp_client_sup, start_link,
[{local, rabbit_tcp_client_sup},
@@ -156,7 +156,7 @@ start_listener(Host, Port, Label, OnConnect) ->
{IPAddress, Name} =
check_tcp_listener_address(rabbit_tcp_listener_sup, Host, Port),
{ok,_} = supervisor:start_child(
- rabbit_restartable_sup,
+ rabbit_sup,
{Name,
{tcp_listener_sup, start_link,
[IPAddress, Port, ?RABBIT_TCP_OPTS ,
@@ -169,8 +169,8 @@ start_listener(Host, Port, Label, OnConnect) ->
stop_tcp_listener(Host, Port) ->
IPAddress = getaddr(Host),
Name = rabbit_misc:tcp_name(rabbit_tcp_listener_sup, IPAddress, Port),
- ok = supervisor:terminate_child(rabbit_restartable_sup, Name),
- ok = supervisor:delete_child(rabbit_restartable_sup, Name),
+ ok = supervisor:terminate_child(rabbit_sup, Name),
+ ok = supervisor:delete_child(rabbit_sup, Name),
ok.
tcp_listener_started(IPAddress, Port) ->
diff --git a/src/rabbit_restartable_sup.erl b/src/rabbit_restartable_sup.erl
index bc6f40da6b..06d59249bb 100644
--- a/src/rabbit_restartable_sup.erl
+++ b/src/rabbit_restartable_sup.erl
@@ -33,22 +33,15 @@
-behaviour(supervisor).
--export([start_link/0, start_child/1, start_child/2]).
+-export([start_link/2]).
-export([init/1]).
--define(SERVER, ?MODULE).
+-include("rabbit.hrl").
-start_link() ->
- supervisor:start_link({local, ?SERVER}, ?MODULE, []).
+start_link(Name, {_M, _F, _A} = Fun) ->
+ supervisor:start_link({local, Name}, ?MODULE, [Fun]).
-start_child(Mod) ->
- start_child(Mod, []).
-
-start_child(Mod, Args) ->
- {ok, _} = supervisor:start_child(?SERVER, {Mod, {Mod, start_link, Args},
- transient, 100, worker, [Mod]}),
- ok.
-
-init([]) ->
- {ok, {{one_for_one, 10, 10}, []}}.
+init([{Mod, _F, _A} = Fun]) ->
+ {ok, {{one_for_one, 10, 10},
+ [{Mod, Fun, transient, ?MAX_WAIT, worker, [Mod]}]}}.
diff --git a/src/rabbit_sup.erl b/src/rabbit_sup.erl
index 63862d4e5a..25715e6e29 100644
--- a/src/rabbit_sup.erl
+++ b/src/rabbit_sup.erl
@@ -33,10 +33,13 @@
-behaviour(supervisor).
--export([start_link/0, start_child/1, start_child/2]).
+-export([start_link/0, start_child/1, start_child/2,
+ start_restartable_child/1, start_restartable_child/2]).
-export([init/1]).
+-include("rabbit.hrl").
+
-define(SERVER, ?MODULE).
start_link() ->
@@ -46,14 +49,22 @@ start_child(Mod) ->
start_child(Mod, []).
start_child(Mod, Args) ->
+ {ok, _} = supervisor:start_child(?SERVER,
+ {Mod, {Mod, start_link, Args},
+ transient, ?MAX_WAIT, worker, [Mod]}),
+ ok.
+
+start_restartable_child(Mod) ->
+ start_restartable_child(Mod, []).
+
+start_restartable_child(Mod, Args) ->
+ Name = list_to_atom(atom_to_list(Mod) ++ "_sup"),
{ok, _} = supervisor:start_child(
- ?SERVER, {Mod, {Mod, start_link, Args},
- %% 16#ffffffff is the highest value allowed
- transient, 16#ffffffff, worker, [Mod]}),
+ ?SERVER,
+ {Name, {rabbit_restartable_sup, start_link,
+ [Name, {Mod, start_link, Args}]},
+ transient, infinity, supervisor, [rabbit_restartable_sup]}),
ok.
init([]) ->
- {ok, {{one_for_all, 0, 1},
- [{rabbit_restartable_sup,
- {rabbit_restartable_sup, start_link, []},
- transient, infinity, supervisor, [rabbit_restartable_sup]}]}}.
+ {ok, {{one_for_all, 0, 1}, []}}.
diff --git a/src/tcp_listener_sup.erl b/src/tcp_listener_sup.erl
index 0fe1542616..493925efd5 100644
--- a/src/tcp_listener_sup.erl
+++ b/src/tcp_listener_sup.erl
@@ -63,4 +63,4 @@ init({IPAddress, Port, SocketOpts, OnStartup, OnShutdown,
[IPAddress, Port, SocketOpts,
ConcurrentAcceptorCount, Name,
OnStartup, OnShutdown, Label]},
- transient, 100, worker, [tcp_listener]}]}}.
+ transient, 16#ffffffff, worker, [tcp_listener]}]}}.