40 lines
990 B
Erlang
40 lines
990 B
Erlang
%% -*- mode: erlang; erlang-indent-level: 4; indent-tabs-mode: nil -*-
|
|
-module(gmhc_sup).
|
|
-vsn("0.8.3").
|
|
|
|
-behaviour(supervisor).
|
|
|
|
%% API
|
|
-export([start_link/0]).
|
|
|
|
%% Supervisor callbacks
|
|
-export([init/1]).
|
|
|
|
|
|
start_link() ->
|
|
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
|
|
|
|
init([]) ->
|
|
ChildSpecs = [ worker(gmhc_watchdog)
|
|
, worker(gmhc_server)
|
|
, worker(gmhc_handler)
|
|
, supervisor(gmhc_connectors_sup) ],
|
|
SupFlags = #{ strategy => rest_for_one
|
|
, intensity => 1
|
|
, period => 5
|
|
, auto_shutdown => never },
|
|
{ok, {SupFlags, ChildSpecs}}.
|
|
|
|
|
|
worker (Mod) -> child(Mod, worker).
|
|
supervisor(Mod) -> child(Mod, supervisor).
|
|
|
|
child(Mod, Type) ->
|
|
#{ id => Mod
|
|
, type => Type
|
|
, start => {Mod, start_link, []}
|
|
, restart => permanent
|
|
, shutdown => 5000
|
|
, significant => false
|
|
, modules => [Mod] }.
|