abstract class BlockRevQueue extends AbstractRevQueue
Modifier and Type | Class and Description |
---|---|
(package private) static class |
BlockRevQueue.Block |
(package private) static class |
BlockRevQueue.BlockFreeList |
Modifier and Type | Field and Description |
---|---|
protected BlockRevQueue.BlockFreeList |
free |
EMPTY_QUEUE, outputType
firstParent, HAS_REWRITE, HAS_UNINTERESTING, NEEDS_REWRITE, SORT_COMMIT_TIME_DESC, SORT_TOPO
Modifier | Constructor and Description |
---|---|
protected |
BlockRevQueue(boolean firstParent)
Create an empty revision queue.
|
(package private) |
BlockRevQueue(Generator s) |
Modifier and Type | Method and Description |
---|---|
void |
shareFreeList(BlockRevQueue q)
Connect the supplied queue to this generator's own free list (if any).
|
add, add, addParents, anybodyHasFlag, clear, describe, everbodyHasFlag, next, outputType
protected BlockRevQueue.BlockFreeList free
protected BlockRevQueue(boolean firstParent)
firstParent
- whether only first-parent links should be followed when
walkingBlockRevQueue(Generator s) throws MissingObjectException, IncorrectObjectTypeException, java.io.IOException
MissingObjectException
IncorrectObjectTypeException
java.io.IOException
public void shareFreeList(BlockRevQueue q)
Reconfigure this queue to share the same free list as another.
Multiple revision queues can be connected to the same free list, making it less expensive for applications to shuttle commits between them. This method arranges for the receiver to take from / return to the same free list as the supplied queue.
Free lists are not thread-safe. Applications must ensure that all queues sharing the same free list are doing so from only a single thread.
shareFreeList
in class Generator
q
- another FIFO queue that wants to share our queue's free list.