ex-scopes/lib/csys/environ.ex

23 lines
428 B
Elixir

defmodule Scopes.CSys.Environ do
use Agent
def create(parent, progs) do
{:ok, env} = Agent.start_link(
fn -> %{parent: parent, programs: progs} end,
name: __MODULE__)
env
end
def get_prog(env, name) do
Agent.get(env, fn state ->
state.programs[name]
end)
end
def notify(env, msg) do
Agent.cast(env, fn state ->
send(state.parent, msg)
state
end)
end
end