Current section
Files
Jump to
Current section
Files
src/fuse_sup.erl
%%% @doc Fuse main supervisor
%%% @private
-module(fuse_sup).
-behaviour(supervisor).
-ifdef(PULSE).
-include_lib("pulse_otp/include/pulse_otp.hrl").
-endif.
-export([start_link/0]).
%% Callbacks
-export([init/1]).
-define(CHILD(I, Args), {I, {I, start_link, Args},
permanent, 5000, worker, [I]}).
%% @doc Start the fuse supervisor
%% @end
-spec start_link() -> {ok, pid()}.
start_link() ->
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
%% ------
%% @private
init([]) ->
Monitor = init_monitor(),
{ok, { {rest_for_one, 5, 3600},
[?CHILD(fuse_server, []),
?CHILD(fuse_event, [])] ++ Monitor }}.
init_monitor() ->
case application:get_env(fuse, monitor) of
{ok, true} ->
[?CHILD(fuse_monitor, [])];
{ok, false} ->
[]
end.