Diversion Queue
An immutable state object that can atomically replace the current state in activeDiversionQueue via a compare-and-set (with retries).
Constructors
Properties
The queue of interpreter tasks that should run when we're next able to run interpreter tasks. Null indicates an empty queue. Safe-point tasks have precedence, so if there are any outstanding safe point tasks, or if any are queued, then queue new interpreter tasks here instead of allowing them to execute.
The queue of safe-point tasks that should run when we're next at a safe point. Null indicates an empty queue. Safe-point tasks have priority over interpreter tasks, so new interpreter tasks should not be started if there are any safe-point tasks queued here, or if the interpreterSurplus is negative, indicating it's processing safe-point tasks already.