RunnerSharedState

mill.daemon.RunnerSharedState
See theRunnerSharedState companion object
case class RunnerSharedState(frames: Map[Int, Frame] = ..., userFinalModuleWatched: Option[Seq[Watchable]] = ..., bootstrapWorkers: Map[String, (Int, Val, TaskApi[_])] = ...)

Daemon-wide bootstrap cache shared across concurrent launcher runs.

Each stored frame represents reusable metadata from one level of build.mill evaluation: watches, classloaders, code signatures, classpaths, and worker caches that are safe to share between launchers. A frame whose bootstrap succeeded carries a RunnerSharedState.Frame.Reusable payload (which now also owns the per-classloader worker cache, so worker lifetime tracks classloader lifetime); a failed frame still publishes its watches so callers can use them to invalidate.

Attributes

Companion
object
Source
RunnerSharedState.scala
Graph
Supertypes
trait Serializable
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

def frameAt(depth: Int): Option[Frame]

Attributes

Source
RunnerSharedState.scala
def moduleWatchedAt(depth: Int): Option[Seq[Watchable]]

Attributes

Source
RunnerSharedState.scala
def reusableFrameAt(depth: Int): Option[Reusable]

Attributes

Source
RunnerSharedState.scala
def withFrame(depth: Int, frame: Frame): RunnerSharedState

Attributes

Source
RunnerSharedState.scala
def withUserFinalModuleWatched(moduleWatched: Seq[Watchable]): RunnerSharedState

Attributes

Source
RunnerSharedState.scala
def withoutFramesAbove(maxDepth: Int): (RunnerSharedState, Map[Int, Frame])

Drop frames at depths greater than maxDepth. Used after a launcher recursion completes to evict frames left over from a previous run that went deeper (e.g. when mill-build/build.mill was deleted between runs); without this, classloaders/workers at those depths are never displaced and leak for the daemon's lifetime.

Drop frames at depths greater than maxDepth. Used after a launcher recursion completes to evict frames left over from a previous run that went deeper (e.g. when mill-build/build.mill was deleted between runs); without this, classloaders/workers at those depths are never displaced and leak for the daemon's lifetime.

Attributes

Source
RunnerSharedState.scala

Inherited methods

def productElementNames: Iterator[String]

An iterator over the names of all the elements of this product.

An iterator over the names of all the elements of this product.

Attributes

Inherited from:
Product
Source
Product.scala
def productIterator: Iterator[Any]

An iterator over all the elements of this product.

An iterator over all the elements of this product.

Attributes

Returns

in the default implementation, an Iterator[Any]

Inherited from:
Product
Source
Product.scala