Current section

Files

Jump to
xprof_core src xprof_core_sup.erl
Raw

src/xprof_core_sup.erl

%% @doc xprof top level supervisor.
-module(xprof_core_sup).
-behaviour(supervisor).
%% API
-export([start_link/0]).
%% Supervisor callbacks
-export([init/1]).
-define(SERVER, ?MODULE).
-define(CHILD(Mod, Type),
{Mod,
{Mod, start_link, []},
permanent,
5000,
Type,
[Mod]
}).
%% API functions
start_link() ->
supervisor:start_link({local, ?SERVER}, ?MODULE, []).
%% Supervisor callbacks
init([]) ->
RecordStore = ?CHILD(xprof_core_records, worker),
TraceHandlerSup = ?CHILD(xprof_core_trace_handler_sup, supervisor),
Tracer = ?CHILD(xprof_core_tracer, worker),
{ok, { {rest_for_one, 0, 1}, [RecordStore, TraceHandlerSup, Tracer]} }.