diff options
Diffstat (limited to 'deps/rabbit/src/rabbit_amqqueue_sup.erl')
-rw-r--r-- | deps/rabbit/src/rabbit_amqqueue_sup.erl | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/deps/rabbit/src/rabbit_amqqueue_sup.erl b/deps/rabbit/src/rabbit_amqqueue_sup.erl new file mode 100644 index 0000000000..a9eaf4087f --- /dev/null +++ b/deps/rabbit/src/rabbit_amqqueue_sup.erl @@ -0,0 +1,35 @@ +%% This Source Code Form is subject to the terms of the Mozilla Public +%% License, v. 2.0. If a copy of the MPL was not distributed with this +%% file, You can obtain one at https://mozilla.org/MPL/2.0/. +%% +%% Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. +%% + +-module(rabbit_amqqueue_sup). + +-behaviour(supervisor2). + +-export([start_link/2]). + +-export([init/1]). + +-include("rabbit.hrl"). + +%%---------------------------------------------------------------------------- + +-spec start_link(amqqueue:amqqueue(), rabbit_prequeue:start_mode()) -> + {'ok', pid(), pid()}. + +start_link(Q, StartMode) -> + Marker = spawn_link(fun() -> receive stop -> ok end end), + ChildSpec = {rabbit_amqqueue, + {rabbit_prequeue, start_link, [Q, StartMode, Marker]}, + intrinsic, ?WORKER_WAIT, worker, [rabbit_amqqueue_process, + rabbit_mirror_queue_slave]}, + {ok, SupPid} = supervisor2:start_link(?MODULE, []), + {ok, QPid} = supervisor2:start_child(SupPid, ChildSpec), + unlink(Marker), + Marker ! stop, + {ok, SupPid, QPid}. + +init([]) -> {ok, {{one_for_one, 5, 10}, []}}. |