RunawayDecisionRequestException

class RunawayDecisionRequestException(val elementName: String, val time: Double, val drains: Int, val stillPending: List<String>) : IllegalStateException(source)

D11 — thrown when deferred requests keep arriving during the decisions that answer them.

A lever's write function may legitimately ask for a follow-up decision; requestDecision exists partly for that, and it cannot re-enter because it only schedules. What it is not is termination-safe: a write that asks every time asks forever, all at the same instant, because a zero-delay event lands at the current time. Before this the only bound was maxEpochs, so the fault announced itself as a hang and a billion-decision counter rather than as a diagnosis.

The shape is ConditionalActionProcessor's, and for the identical reason: work that re-triggers itself while the clock stands still needs a cap and a name.

Constructors

Link copied to clipboard
constructor(elementName: String, time: Double, drains: Int, stillPending: List<String>)

Properties

Link copied to clipboard
val drains: Int
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard