Phase-owned state for one extension start transition.
Summary
Functions
Records the bounded worker performing the transition.
Clears completed or failed worker bookkeeping.
Adds a caller waiting for the in-flight start.
Starts a transition with its callers and previous phase.
Queues a stop caller behind the in-flight start.
Clears runtime and worker ownership after the runtime exits during start.
Records the runtime started by the transition.
Types
@type t() :: %Minga.Extension.Instance.StartContext{ previous: term(), runtime: Minga.Extension.Instance.Runtime.t() | nil, stop_waiters: [GenServer.from()], waiters: [GenServer.from()], worker: Minga.Extension.Instance.Worker.t() | nil }
Functions
@spec begin_work(t(), Minga.Extension.Instance.Worker.t()) :: t()
Records the bounded worker performing the transition.
Clears completed or failed worker bookkeeping.
@spec join(t(), GenServer.from()) :: t()
Adds a caller waiting for the in-flight start.
@spec new([GenServer.from()], term()) :: t()
Starts a transition with its callers and previous phase.
@spec queue_stop(t(), GenServer.from()) :: t()
Queues a stop caller behind the in-flight start.
Clears runtime and worker ownership after the runtime exits during start.
@spec runtime_started(t(), Minga.Extension.Instance.Runtime.t()) :: t()
Records the runtime started by the transition.