diff --git a/lib/core/actor.ex b/lib/core/actor.ex index 9a13f6e..2262d95 100644 --- a/lib/core/actor.ex +++ b/lib/core/actor.ex @@ -3,13 +3,13 @@ defmodule Scopes.Core.Actor do defp loop(bhv) do receive do + {:become, bhv_n} -> loop(bhv_n) msg -> Logger.debug([msg: inspect(msg)]) case msg do {:message, msg} -> bhv.(msg) loop(bhv) - {:become, bhv_n} -> loop(bhv_n) {:register, reg, name, value} -> Registry.register(reg, name, value) loop(bhv) @@ -19,11 +19,13 @@ defmodule Scopes.Core.Actor do end def create(bhv) do - spawn_link(fn -> loop(bhv) end) + #spawn_link(fn -> loop(bhv) end) + spawn(fn -> loop(bhv) end) end def create(bhv, reg, name, value \\ []) do - spawn_link(fn -> + #spawn_link(fn -> + spawn(fn -> Registry.register(reg, name, value) loop(bhv) end) end diff --git a/lib/core/environ.ex b/lib/core/environ.ex index 2ede5b7..d0f48e1 100644 --- a/lib/core/environ.ex +++ b/lib/core/environ.ex @@ -33,12 +33,12 @@ defmodule Scopes.Core.Environ do def proc_env(msg, scope = {state, _proc, _syns, env}) do case Shape.head(msg) do {:exec, func} -> func.(state) - [:csys, :created | _rest] -> process_creation(msg, scope) + [:csys, :created | _rest] -> process_created(msg, scope) _ -> send(env, msg) # forward message to application end end - def process_creation(msg, {state, proc, syns, env}) do + def process_created(msg, {state, proc, syns, env}) do data = Shape.data(msg) new = data.new addr = data[:addr] diff --git a/test/core/core_test.exs b/test/core/core_test.exs index 503d916..80a2ab7 100644 --- a/test/core/core_test.exs +++ b/test/core/core_test.exs @@ -18,7 +18,7 @@ defmodule Scopes.CoreTest do describe "core-basic:" do test "minimal-b1" do Environ.setup(Program.prepare_basic(), Program.init_seq_b1()) - Process.sleep(10) + Process.sleep(5) env = Environ.get_cell({:env, :c00}) Environ.forward_value(env, [:csys, :c00, "0-0"], 0) assert 0 = receive_data().value @@ -28,18 +28,18 @@ defmodule Scopes.CoreTest do Environ.forward_value(env, [:csys, :s01, "1-1"], 3) assert receive_data().value in [2, 3] assert receive_data().value in [2, 3] - refute_receive msg, 10, "unhandled message(s): #{inspect(msg)}" + refute_receive msg, 5, "unhandled message(s): #{inspect(msg)}" end test "recursive-1" do Environ.setup(Program.prepare_basic(), Program.init_recursive_1()) - Process.sleep(10) + Process.sleep(5) env = Environ.get_cell({:env, :c00}) Environ.forward_value(env, [:csys, :s01, "1-1"], 42) assert receive_data().value == 42 Environ.forward_value(env, [:csys, :s01, "1-1"], 47) assert receive_data().value == 5 - refute_receive msg, 10, "unhandled message(s): #{inspect(msg)}" + refute_receive msg, 5, "unhandled message(s): #{inspect(msg)}" end end end