defmodule Skuld.Effects.Parallel.TaskHelpers do @moduledoc false @doc """ Stop a supervisor gracefully, ignoring exit signals if it's already stopped. Returns `:ok` regardless of whether the supervisor was running or already stopped. ## Example sup = Env.get_state(env, @supervisor_key) TaskHelpers.stop_supervisor(sup) """ @spec stop_supervisor(pid() | nil) :: :ok def stop_supervisor(nil), do: :ok def stop_supervisor(sup) when is_pid(sup) do if Process.alive?(sup) do try do Supervisor.stop(sup, :normal) catch :exit, _ -> :ok end end :ok end end