Packages
livebook
0.13.0
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.3
0.17.2
0.17.1
0.17.0
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.14.0-rc.1
0.14.0-rc.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Automate code & data workflows with interactive notebooks
Current section
Files
Jump to
Current section
Files
lib/livebook/runtime/erl_dist/evaluator_supervisor.ex
defmodule Livebook.Runtime.ErlDist.EvaluatorSupervisor do
# Supervisor responsible for dynamically spawning
# and terminating evaluator server processes.
use DynamicSupervisor
alias Livebook.Runtime.Evaluator
def start_link(opts \\ []) do
DynamicSupervisor.start_link(__MODULE__, opts)
end
@impl true
def init(_opts) do
DynamicSupervisor.init(strategy: :one_for_one)
end
@doc """
Spawns a new evaluator.
"""
@spec start_evaluator(pid(), keyword()) :: {:ok, Evaluator.t()} | {:error, any()}
def start_evaluator(supervisor, opts) do
case DynamicSupervisor.start_child(supervisor, {Evaluator, opts}) do
{:ok, _pid, evaluator} -> {:ok, evaluator}
{:error, reason} -> {:error, reason}
end
end
@doc """
Terminates the given evaluator.
"""
@spec terminate_evaluator(pid(), Evaluator.t()) :: :ok
def terminate_evaluator(supervisor, evaluator) do
DynamicSupervisor.terminate_child(supervisor, evaluator.pid)
:ok
end
end