From 26d39772e8ea41b9353bd5ddb0cc1f031c09ed21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonatan=20K=C5=82osko?= Date: Wed, 27 Mar 2024 22:04:14 +0700 Subject: [PATCH] Group IOProxy arguments --- lib/livebook/runtime/evaluator.ex | 20 +++--- lib/livebook/runtime/evaluator/io_proxy.ex | 77 ++++++++-------------- 2 files changed, 36 insertions(+), 61 deletions(-) diff --git a/lib/livebook/runtime/evaluator.ex b/lib/livebook/runtime/evaluator.ex index 3f4fefcc0..b1c9ccb23 100644 --- a/lib/livebook/runtime/evaluator.ex +++ b/lib/livebook/runtime/evaluator.ex @@ -276,16 +276,16 @@ defmodule Livebook.Runtime.Evaluator do io_proxy_registry = Keyword.get(opts, :io_proxy_registry) {:ok, io_proxy} = - Evaluator.IOProxy.start( - self(), - send_to, - runtime_broadcast_to, - object_tracker, - client_tracker, - ebin_path, - tmp_dir, - io_proxy_registry - ) + Evaluator.IOProxy.start(%{ + evaluator: self(), + send_to: send_to, + runtime_broadcast_to: runtime_broadcast_to, + object_tracker: object_tracker, + client_tracker: client_tracker, + ebin_path: ebin_path, + tmp_dir: tmp_dir, + registry: io_proxy_registry + }) io_proxy_monitor = Process.monitor(io_proxy) diff --git a/lib/livebook/runtime/evaluator/io_proxy.ex b/lib/livebook/runtime/evaluator/io_proxy.ex index d835dfb42..947dcd7fe 100644 --- a/lib/livebook/runtime/evaluator/io_proxy.ex +++ b/lib/livebook/runtime/evaluator/io_proxy.ex @@ -24,58 +24,25 @@ defmodule Livebook.Runtime.Evaluator.IOProxy do For all supported requests a message is sent to the configured `:send_to` process, so this device serves as a proxy. """ - @spec start( - pid(), - pid(), - pid(), - pid(), - pid(), - String.t() | nil, - String.t() | nil, - atom() | nil - ) :: GenServer.on_start() - def start( - evaluator, - send_to, - runtime_broadcast_to, - object_tracker, - client_tracker, - ebin_path, - tmp_dir, - registry - ) do - GenServer.start( - __MODULE__, - {evaluator, send_to, runtime_broadcast_to, object_tracker, client_tracker, ebin_path, - tmp_dir, registry} - ) + @spec start(%{ + evaluator: pid(), + send_to: pid(), + runtime_broadcast_to: pid(), + object_tracker: pid(), + client_tracker: pid(), + ebin_path: String.t() | nil, + tmp_dir: String.t() | nil, + registry: atom() | nil + }) :: GenServer.on_start() + def start(args) do + GenServer.start(__MODULE__, args) end @doc """ Linking version of `start/4`. """ - @spec start_link( - pid(), - pid(), - pid(), - pid(), - String.t() | nil, - String.t() | nil, - atom() | nil - ) :: GenServer.on_start() - def start_link( - evaluator, - send_to, - runtime_broadcast_to, - object_tracker, - ebin_path, - tmp_dir, - registry - ) do - GenServer.start_link( - __MODULE__, - {evaluator, send_to, runtime_broadcast_to, object_tracker, ebin_path, tmp_dir, registry} - ) + def start_link(args) do + GenServer.start_link(__MODULE__, args) end @doc """ @@ -105,10 +72,18 @@ defmodule Livebook.Runtime.Evaluator.IOProxy do end @impl true - def init( - {evaluator, send_to, runtime_broadcast_to, object_tracker, client_tracker, ebin_path, - tmp_dir, registry} - ) do + def init(args) do + %{ + evaluator: evaluator, + send_to: send_to, + runtime_broadcast_to: runtime_broadcast_to, + object_tracker: object_tracker, + client_tracker: client_tracker, + ebin_path: ebin_path, + tmp_dir: tmp_dir, + registry: registry + } = args + evaluator_monitor = Process.monitor(evaluator) if registry do