Owns a long-running Verilator Docker container for repeated docker exec jobs.
The worker is intentionally small: it starts or reuses one container with the
host workspace mounted at /work, then serializes Verilator invocations
through GenServer.call/3. Callers can pass the worker to
SvPortSim.Verilator.Docker.compile/4 with docker_mode: :persistent and
docker_worker: worker.
Summary
Functions
Returns a specification to start this module under a supervisor.
Returns worker metadata.
Runs Verilator inside the persistent container.
Starts a Docker worker.
Starts or reuses a globally registered worker for :docker_worker_name.
Stops the worker process.
Types
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec info(GenServer.server()) :: {:ok, map()}
Returns worker metadata.
@spec run(GenServer.server(), [String.t()], keyword()) :: {:ok, run_result()} | {:error, term()}
Runs Verilator inside the persistent container.
@spec start_link(keyword()) :: GenServer.on_start()
Starts a Docker worker.
Useful options are :docker, :image, :workspace_dir, :container_name,
:docker_worker_name, :user, :reuse, and :cleanup.
Starts or reuses a globally registered worker for :docker_worker_name.
@spec stop(GenServer.server()) :: :ok
Stops the worker process.