18 lines
311 B
Elixir
18 lines
311 B
Elixir
# Key-Value store
|
|
defmodule KV do
|
|
def start_link do
|
|
Task.start_link(fn -> loop(%{}) end)
|
|
end
|
|
|
|
defp loop(map) do
|
|
receive do
|
|
{:get, key, caller} ->
|
|
send(caller, Map.get(map, key))
|
|
loop(map)
|
|
{:put, key, value} ->
|
|
loop(Map.put(map, key, value))
|
|
end
|
|
end
|
|
end
|
|
|