X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=001%2Fsrc%2Flife_god.erl;h=ea3b236cdba73e6e33899b38fc6be442a0720385;hb=ff1de1d818955b7bc2367e9e5c516222def384ef;hp=3922680db853137c9a0586b6bed1f0fa01dbeb1d;hpb=186887fd5b14774031bd437936418453b5a0c843;p=cellular-automata.git diff --git a/001/src/life_god.erl b/001/src/life_god.erl index 3922680..ea3b236 100644 --- a/001/src/life_god.erl +++ b/001/src/life_god.erl @@ -1,9 +1,9 @@ --module(god). +-module(life_god). -behaviour(supervisor). %% API --export([start_link/2]). +-export([start_link/3]). %% Callbacks -export([init/1]). @@ -17,31 +17,29 @@ %% API %% ============================================================================ -start_link(X, CellData) -> - supervisor:start_link({local, ?MODULE}, ?MODULE, [X, CellData]). +start_link(X, Y, CellData) -> + supervisor:start_link({local, ?MODULE}, ?MODULE, [X, Y, CellData]). %% ============================================================================ %% Callbacks %% ============================================================================ -init([X, CellData]) -> +init([X, Y, CellData]) -> CellNames = [Name || {_, Name, _} <- CellData], - RestartStrategy = {one_for_one, 5, 10}, + RestartStrategy = {one_for_one, 1000000, 1}, + + Observer = ?CHILD(worker, life_observer, [X, Y]), Cells = [spec_cell(Datum) || Datum <- CellData], - Time = ?CHILD(worker, time, [X, CellNames]), - Children = Cells ++ [Time], + Time = ?CHILD(worker, life_time, [X, Y, CellNames]), + + Children = [Observer | Cells ++ [Time]], + {ok, {RestartStrategy, Children}}. spec_cell({_, Name, _}=Datum) -> - M = cell, + M = life_cell, F = start_link, A = [Datum], {Name, {M, F, A}, permanent, 5000, worker, [M]}. - - %{ID, {ID, start_link, Args}, permanent, 5000, Type, [ID]}. - - - -