Compare commits

...

2 Commits

Author SHA1 Message Date
0b8bbca40b
Remove needless empty line
All checks were successful
Build & Test / nix-build (push) Successful in 1m46s
2024-10-15 11:29:51 +02:00
4e702caa6a
Parallelize BlockRegistry 2024-10-15 11:29:23 +02:00
2 changed files with 19 additions and 7 deletions

View File

@ -31,9 +31,17 @@ defmodule Amethyst.Application do
child_spec: DynamicSupervisor.child_spec([]), child_spec: DynamicSupervisor.child_spec([]),
name: Amethyst.GameMetaSupervisor name: Amethyst.GameMetaSupervisor
}, },
{Amethyst.BlockRegistry, %{}}, {PartitionSupervisor,
child_spec: Amethyst.BlockRegistry.child_spec(%{}),
name: Amethyst.BlockRegistry},
Supervisor.child_spec( Supervisor.child_spec(
{Task, fn -> Amethyst.DataGenerator.generate_and_populate_data(:latest, "/tmp/server.jar", "/tmp/amethyst-generated") end}, id: Amethyst.DataGenerator) {Task, fn ->
Amethyst.DataGenerator.generate_and_populate_data(
:latest,
"/tmp/server.jar",
"/tmp/amethyst-generated")
end},
id: Amethyst.DataGenerator)
] ]
children = case Application.fetch_env!(:amethyst, :port) do children = case Application.fetch_env!(:amethyst, :port) do

View File

@ -22,9 +22,8 @@ defmodule Amethyst.BlockRegistry do
""" """
require Logger require Logger
def start_link(initial) do def start_link(map) do
Logger.info("Starting BlockRegistry") GenServer.start_link(__MODULE__, map)
GenServer.start_link(__MODULE__, initial, name: __MODULE__)
end end
def init(map) do def init(map) do
@ -44,6 +43,11 @@ defmodule Amethyst.BlockRegistry do
end end
end end
def handle_call(:debug, _from, state) do
Logger.debug("BlockRegistry state: #{inspect(state)}")
{:reply, :ok, state}
end
@doc """ @doc """
Adds a block state to the registry. Adds a block state to the registry.
@ -54,7 +58,7 @@ defmodule Amethyst.BlockRegistry do
""" """
@spec add(String.t(), map(), integer()) :: :ok @spec add(String.t(), map(), integer()) :: :ok
def add(id, bs, bsi) do def add(id, bs, bsi) do
GenServer.cast(__MODULE__, {:add, id, bs, bsi}) GenServer.cast({:via, PartitionSupervisor, {__MODULE__, id}}, {:add, id, bs, bsi})
end end
@doc """ @doc """
@ -64,6 +68,6 @@ defmodule Amethyst.BlockRegistry do
""" """
@spec get(String.t(), map() | nil) :: integer() | nil @spec get(String.t(), map() | nil) :: integer() | nil
def get(id, bs \\ %{}) do def get(id, bs \\ %{}) do
GenServer.call(__MODULE__, {:get, id, bs}) GenServer.call({:via, PartitionSupervisor, {__MODULE__, id}}, {:get, id, bs})
end end
end end