123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- %% -*- erlang-indent-level: 4;indent-tabs-mode: nil -*-
- %% --------------------------------------------------
- %% This file is provided to you under the Apache License,
- %% Version 2.0 (the "License"); you may not use this file
- %% except in compliance with the License. You may obtain
- %% a copy of the License at
- %%
- %% http://www.apache.org/licenses/LICENSE-2.0
- %%
- %% Unless required by applicable law or agreed to in writing,
- %% software distributed under the License is distributed on an
- %% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- %% KIND, either express or implied. See the License for the
- %% specific language governing permissions and limitations
- %% under the License.
- %% --------------------------------------------------
- %%----------------------------------------------------------------------
- %% File : gproc_sup.erl
- %% Purpose : GPROC top-level supervisor
- %%----------------------------------------------------------------------
- -module(gproc_sup).
- -behaviour(supervisor).
- %% External exports
- -export([start_link/1]).
- %% supervisor callbacks
- -export([init/1]).
- %%%----------------------------------------------------------------------
- %%% API
- %%%----------------------------------------------------------------------
- start_link(Args) ->
- supervisor:start_link({local, ?MODULE}, ?MODULE, Args).
- %%%----------------------------------------------------------------------
- %%% Callback functions from supervisor
- %%%----------------------------------------------------------------------
- %%----------------------------------------------------------------------
- %% Func: init/1
- %% Returns: {ok, {SupFlags, [ChildSpec]}} |
- %% ignore |
- %% {error, Reason}
- %%----------------------------------------------------------------------
- %% @spec(_Args::term()) -> {ok, {supervisor_flags(), child_spec_list()}}
- %% @doc The main GPROC supervisor.
- init(_Args) ->
- %% Hint:
- %% Child_spec = [Name, {M, F, A},
- %% Restart, Shutdown_time, Type, Modules_used]
- GProc =
- {gproc, {gproc, start_link, []},
- permanent, 2000, worker, [gproc]},
- Dist = case application:get_env(gproc_dist) of
- undefined -> [];
- {ok, false} -> [];
- {ok, Env} ->
- [{gproc_dist, {gproc_dist, start_link, [Env]},
- permanent, 2000, worker, [gproc_dist]}]
- end,
- Mon = {gproc_monitor, {gproc_monitor, start_link, []},
- permanent, 2000, worker, [gproc_monitor]},
- BCast = {gproc_bcast, {gproc_bcast, start_link, []},
- permanent, 2000, worker, [gproc_bcast]},
- Pool = {gproc_pool, {gproc_pool, start_link, []},
- permanent, 2000, worker, [gproc_pool]},
- {ok,{{one_for_one, 15, 60}, [GProc| Dist] ++ [Mon, BCast, Pool]}}.
- %%%----------------------------------------------------------------------
- %%% Internal functions
- %%%----------------------------------------------------------------------
|