Package io.deephaven.engine.updategraph
Class UpdateCommitterEx<T,U>
java.lang.Object
io.deephaven.engine.updategraph.AbstractNotification
io.deephaven.engine.updategraph.TerminalNotification
io.deephaven.engine.updategraph.UpdateCommitterEx<T,U>
- All Implemented Interfaces:
LogOutputAppendable,NotificationQueue.Notification,IntrusiveDoublyLinkedNode<NotificationQueue.Notification>,Runnable
Tool for allowing cleanup at update cycle end as a
TerminalNotification. The general pattern is to specify
target as something that contains the state to be cleaned up, and invoke an instance method on
target from committer. By maintaining only weak reachability to target, we avoid prolonging
its lifetime in order to perform cleanup tasks that would be obviated by its collection.
This variant additionally allows a secondary weakly-reachable input to be specified on a per-cycle basis,
allowing the UpdateCommitterEx to be stored and re-used across cycles when this pattern is necessary.
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.deephaven.util.datastructures.linked.IntrusiveDoublyLinkedNode
IntrusiveDoublyLinkedNode.Adapter<NODE_TYPE extends IntrusiveDoublyLinkedNode<NODE_TYPE>>, IntrusiveDoublyLinkedNode.Impl<NODE_TYPE extends IntrusiveDoublyLinkedNode.Impl<NODE_TYPE>> -
Constructor Summary
ConstructorsConstructorDescriptionUpdateCommitterEx(T target, UpdateGraph updateGraph, BiConsumer<T, U> committer) -
Method Summary
Methods inherited from class io.deephaven.engine.updategraph.TerminalNotification
canExecuteMethods inherited from class io.deephaven.engine.updategraph.AbstractNotification
append, getNext, getPrev, isTerminal, mustExecuteWithUpdateGraphLock, setNext, setPrev, toString
-
Constructor Details
-
UpdateCommitterEx
-
-
Method Details
-
run
public void run() -
maybeActivate
-