diff --git a/lib/membrane/utility_supervisor.ex b/lib/membrane/utility_supervisor.ex index a46bbbfd3..b60d556e2 100644 --- a/lib/membrane/utility_supervisor.ex +++ b/lib/membrane/utility_supervisor.ex @@ -1,14 +1,16 @@ defmodule Membrane.UtilitySupervisor do @moduledoc """ - A supervisor that allows to start utility processes under the pipeline's + A supervisor responsible for managing utility processes under the pipeline's supervision tree. - The supervisor is spawned with each component and can be obtained from - callback contexts. + The supervisor is spawned with each component and can be accessed from callback contexts. - The supervisor never restarts any processes, it just makes sure they - terminate when the component that started them terminates. If restarting - is needed, a dedicated supervisor should be spawned under this supervisor, like + `Membrane.UtilitySupervisor` does not restart processes. Rather, it ensures that these utility processes + terminate gracefully when the component that initiated them terminates. + + If a process needs to be able to restart, spawn a dedicated supervisor under this supervisor. + + ## Example def handle_setup(ctx, state) do Membrane.UtilitySupervisor.start_link_child( @@ -26,7 +28,7 @@ defmodule Membrane.UtilitySupervisor do @doc """ Starts a process under the utility supervisor. - Semantics of the `child_spec` argument is the same as in `Supervisor.child_spec/2`. + Semantics of the `child_spec` argument are the same as in `Supervisor.child_spec/2`. """ @spec start_child(t, Supervisor.child_spec() | {module(), term()} | module()) :: Supervisor.on_start_child() @@ -37,7 +39,7 @@ defmodule Membrane.UtilitySupervisor do @doc """ Starts a process under the utility supervisor and links it to the current process. - Semantics of the `child_spec` argument is the same as in `Supervisor.child_spec/2`. + Semantics of the `child_spec` argument are the same as in `Supervisor.child_spec/2`. """ @spec start_link_child(t, Supervisor.child_spec() | {module(), term()} | module()) :: Supervisor.on_start_child()