X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=001%2Fsrc%2Flife_god.erl;h=ea3b236cdba73e6e33899b38fc6be442a0720385;hb=3a20c476f299ddbe993ac28b5dec75a407edf338;hp=d9f6237577f346e3c980fafded5954df42245e7f;hpb=982ec72043e6de6b6b22e49acb3fe13f1f54bc93;p=cellular-automata.git diff --git a/001/src/life_god.erl b/001/src/life_god.erl index d9f6237..ea3b236 100644 --- a/001/src/life_god.erl +++ b/001/src/life_god.erl @@ -3,7 +3,7 @@ %% API --export([start_link/2]). +-export([start_link/3]). %% Callbacks -export([init/1]). @@ -17,20 +17,24 @@ %% 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, life_time, [X, CellNames]), - Children = Cells ++ [Time], + Time = ?CHILD(worker, life_time, [X, Y, CellNames]), + + Children = [Observer | Cells ++ [Time]], + {ok, {RestartStrategy, Children}}. @@ -39,9 +43,3 @@ spec_cell({_, Name, _}=Datum) -> F = start_link, A = [Datum], {Name, {M, F, A}, permanent, 5000, worker, [M]}. - - %{ID, {ID, start_link, Args}, permanent, 5000, Type, [ID]}. - - - -