summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit.erl5
-rw-r--r--src/rabbit_prelaunch.erl3
-rw-r--r--src/worker_pool.erl14
3 files changed, 11 insertions, 11 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 0a4aa03240..b8dbccc767 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -211,11 +211,8 @@
%%----------------------------------------------------------------------------
prepare() ->
- %% Some of the rabbit_misc functions use worker_pool, so start it now.
- {ok, Pid} = worker_pool_sup:start_link(),
ok = ensure_working_log_handlers(),
- ok = rabbit_upgrade:maybe_upgrade_mnesia(),
- exit(Pid, shutdown).
+ ok = rabbit_upgrade:maybe_upgrade_mnesia().
start() ->
try
diff --git a/src/rabbit_prelaunch.erl b/src/rabbit_prelaunch.erl
index bbbea54358..92829e4918 100644
--- a/src/rabbit_prelaunch.erl
+++ b/src/rabbit_prelaunch.erl
@@ -37,9 +37,6 @@
start() ->
io:format("Activating RabbitMQ plugins ...~n"),
- %% Some of the rabbit_misc functions use worker_pool, so start it now.
- worker_pool_sup:start_link(),
-
%% Determine our various directories
[PluginDir, UnpackedPluginDir, NodeStr] = init:get_plain_arguments(),
RootName = UnpackedPluginDir ++ "/rabbit",
diff --git a/src/worker_pool.erl b/src/worker_pool.erl
index e4f260cc50..bdcafc8419 100644
--- a/src/worker_pool.erl
+++ b/src/worker_pool.erl
@@ -59,10 +59,16 @@ start_link() ->
[{timeout, infinity}]).
submit(Fun) ->
- case get(worker_pool_worker) of
- true -> worker_pool_worker:run(Fun);
- _ -> Pid = gen_server2:call(?SERVER, next_free, infinity),
- worker_pool_worker:submit(Pid, Fun)
+ %% If the worker_pool is not running, just run the Fun in the
+ %% current process.
+ case whereis(?SERVER) of
+ undefined -> Fun();
+ _ -> case get(worker_pool_worker) of
+ true -> worker_pool_worker:run(Fun);
+ _ -> Pid = gen_server2:call(?SERVER, next_free,
+ infinity),
+ worker_pool_worker:submit(Pid, Fun)
+ end
end.
submit_async(Fun) ->