public abstract class SegmentStages extends Object implements SegmentLock, LocksInterface
Modifier and Type | Field and Description |
---|---|
CheckOnEachPublicOperation |
checkOnEachPublicOperation |
int |
contextModCount |
long |
entrySpaceOffset |
net.openhft.chronicle.algo.bitset.ReusableBitSet |
freeList |
net.openhft.chronicle.hash.impl.VanillaChronicleHashHolder<?> |
hh |
ReadLock |
innerReadLock |
UpdateLock |
innerUpdateLock |
WriteLock |
innerWriteLock |
int |
latestSameThreadSegmentModCount |
boolean |
nestedContextsLockedOnSameSegment
See the ChMap Ops spec, considerations of nested same-thread concurrent contexts.
|
LocksInterface |
rootContextLockedOnThisSegment |
net.openhft.chronicle.bytes.PointerBytesStore |
segmentBS |
net.openhft.chronicle.bytes.Bytes |
segmentBytes |
net.openhft.chronicle.hash.impl.SegmentHeader |
segmentHeader |
long |
segmentHeaderAddress |
int |
segmentIndex |
int |
tier |
long |
tierBaseAddr |
long |
tierIndex |
Constructor and Description |
---|
SegmentStages() |
Modifier and Type | Method and Description |
---|---|
long |
allocReturnCode(int chunks) |
int |
changeAndGetLatestSameThreadSegmentModCount(int change) |
int |
changeAndGetTotalReadLockCount(int change) |
int |
changeAndGetTotalUpdateLockCount(int change) |
int |
changeAndGetTotalWriteLockCount(int change) |
void |
checkIterationContextNotLockedInThisThread() |
void |
checkNestedContextsQueryDifferentKeys(LocksInterface innermostContextOnThisSegment) |
RuntimeException |
debugContextsAndLocks(InterProcessDeadLockException e) |
String |
debugLocksState() |
int |
decrementRead() |
int |
decrementUpdate() |
int |
decrementWrite() |
void |
free(long fromPos,
int chunks) |
void |
freeExtra(long pos,
int oldChunks,
int newChunks) |
void |
goToFirstTier() |
void |
goToLastTier() |
boolean |
hasNextTier() |
void |
incrementModCount() |
void |
incrementRead() |
void |
incrementUpdate() |
void |
incrementWrite() |
void |
initSegmentIndex(int segmentIndex) |
void |
initSegmentTier() |
void |
initSegmentTier(int tier,
long tierIndex) |
void |
initSegmentTier(int tier,
long tierIndex,
long tierBaseAddr) |
abstract boolean |
locksInit() |
long |
lowestPossiblyFreeChunk() |
void |
lowestPossiblyFreeChunk(long lowestPossiblyFreeChunk) |
void |
nextTier() |
long |
nextTierIndex() |
void |
nextTierIndex(long nextTierIndex) |
void |
prevTier() |
long |
prevTierIndex() |
void |
prevTierIndex(long prevTierIndex) |
InterProcessLock |
readLock()
Returns the read-level lock.
|
void |
readUnlockAndDecrementCount() |
boolean |
readZero() |
boolean |
realloc(long fromPos,
int oldChunks,
int newChunks) |
net.openhft.chronicle.bytes.Bytes |
segmentBytesForRead() |
net.openhft.chronicle.bytes.Bytes |
segmentBytesForWrite() |
abstract boolean |
segmentIndexInit() |
abstract boolean |
segmentTierInit() |
void |
setLocalLockState(net.openhft.chronicle.hash.impl.LocalLockState newState) |
void |
setNestedContextsLockedOnSameSegment(boolean nestedContextsLockedOnSameSegment) |
void |
setNextNode(LocksInterface nextNode) |
long |
size() |
long |
tierCountersAreaAddr() |
long |
tierDeleted() |
void |
tierDeleted(long tierDeleted) |
long |
tierEntries() |
void |
tierEntries(long tierEntries) |
InterProcessLock |
updateLock()
Returns the update-level lock.
|
boolean |
updateZero() |
void |
verifyTierCountersAreaData() |
InterProcessLock |
writeLock()
Returns the write-level lock.
|
boolean |
writeZero() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
segmentIndex
latestSameThreadSegmentModCount, nextNode, rootContextLockedOnThisSegment, segmentHeaderAddress, segmentHeaderInit, totalReadLockCount, totalUpdateLockCount, totalWriteLockCount
public final net.openhft.chronicle.bytes.PointerBytesStore segmentBS
public final net.openhft.chronicle.bytes.Bytes segmentBytes
public net.openhft.chronicle.hash.impl.VanillaChronicleHashHolder<?> hh
public final net.openhft.chronicle.algo.bitset.ReusableBitSet freeList
public CheckOnEachPublicOperation checkOnEachPublicOperation
public int segmentIndex
public long segmentHeaderAddress
public net.openhft.chronicle.hash.impl.SegmentHeader segmentHeader
public LocksInterface rootContextLockedOnThisSegment
public boolean nestedContextsLockedOnSameSegment
true
for itself and that concurrent context.
This flag is not dropped on exit of one of these contexts, because between calls of
this context, nested one could be initialized, does some changes that break our thread-local
assumptions _and exit_, that is why on exit concurrent context should remain "dirty".public int latestSameThreadSegmentModCount
public int contextModCount
public ReadLock innerReadLock
public UpdateLock innerUpdateLock
public WriteLock innerWriteLock
public int tier
public long tierIndex
public long tierBaseAddr
public long entrySpaceOffset
public void initSegmentIndex(int segmentIndex)
public abstract boolean segmentIndexInit()
public long tierEntries()
public void tierEntries(long tierEntries)
public long lowestPossiblyFreeChunk()
public void lowestPossiblyFreeChunk(long lowestPossiblyFreeChunk)
public long tierDeleted()
public void tierDeleted(long tierDeleted)
public long nextTierIndex()
public void nextTierIndex(long nextTierIndex)
public long size()
public void setNestedContextsLockedOnSameSegment(boolean nestedContextsLockedOnSameSegment)
setNestedContextsLockedOnSameSegment
in interface LocksInterface
public int changeAndGetLatestSameThreadSegmentModCount(int change)
changeAndGetLatestSameThreadSegmentModCount
in interface LocksInterface
public void incrementModCount()
public void setNextNode(LocksInterface nextNode)
setNextNode
in interface LocksInterface
public boolean readZero()
public int changeAndGetTotalReadLockCount(int change)
changeAndGetTotalReadLockCount
in interface LocksInterface
public boolean updateZero()
public int changeAndGetTotalUpdateLockCount(int change)
changeAndGetTotalUpdateLockCount
in interface LocksInterface
public boolean writeZero()
public int changeAndGetTotalWriteLockCount(int change)
changeAndGetTotalWriteLockCount
in interface LocksInterface
public int decrementRead()
public int decrementUpdate()
public int decrementWrite()
public void incrementRead()
public void incrementUpdate()
public void incrementWrite()
public abstract boolean locksInit()
locksInit
in interface LocksInterface
public void readUnlockAndDecrementCount()
public void checkNestedContextsQueryDifferentKeys(LocksInterface innermostContextOnThisSegment)
public void setLocalLockState(net.openhft.chronicle.hash.impl.LocalLockState newState)
public void checkIterationContextNotLockedInThisThread()
public RuntimeException debugContextsAndLocks(InterProcessDeadLockException e)
public String debugLocksState()
debugLocksState
in interface LocksInterface
@NotNull public InterProcessLock readLock()
InterProcessReadWriteUpdateLock
unlock()
on this
lock also releases the update and write locks, if held, as well.readLock
in interface ReadWriteLock
readLock
in interface InterProcessReadWriteUpdateLock
@NotNull public InterProcessLock updateLock()
InterProcessReadWriteUpdateLock
lock()
or other
locking methods (tryLock()
, etc.) on this lock acquires the read lock, as well.
Calling unlock()
on this lock also releases the write lock.
Any attempt to acquire this lock (including tryLock()
, if the read lock is already
held by the current thread, but the update lock is not yet, is prevented by throwing IllegalMonitorStateException
.
updateLock
in interface InterProcessReadWriteUpdateLock
@NotNull public InterProcessLock writeLock()
InterProcessReadWriteUpdateLock
lock()
or other
locking methods (tryLock()
, etc.) on this lock acquires the read and update locks,
as well.
Any attempt to acquire this lock (including tryLock()
, if the read lock is already
held by the current thread, but the update and write locks are not yet, is prevented by
throwing IllegalMonitorStateException
.
writeLock
in interface ReadWriteLock
writeLock
in interface InterProcessReadWriteUpdateLock
public abstract boolean segmentTierInit()
public void initSegmentTier()
public void initSegmentTier(int tier, long tierIndex)
public void initSegmentTier(int tier, long tierIndex, long tierBaseAddr)
public long tierCountersAreaAddr()
public long prevTierIndex()
public void prevTierIndex(long prevTierIndex)
public void nextTier()
public boolean hasNextTier()
public void prevTier()
public void goToLastTier()
public void goToFirstTier()
public net.openhft.chronicle.bytes.Bytes segmentBytesForRead()
public net.openhft.chronicle.bytes.Bytes segmentBytesForWrite()
public long allocReturnCode(int chunks)
public boolean realloc(long fromPos, int oldChunks, int newChunks)
public void free(long fromPos, int chunks)
public void freeExtra(long pos, int oldChunks, int newChunks)
public void verifyTierCountersAreaData()
Copyright © 2022. All rights reserved.