public abstract class ReplicatedChronicleMapHolderImpl<K,V,R> extends Chaining implements net.openhft.chronicle.map.impl.ReplicatedChronicleMapHolder<K,V,R>
contextChain, indexInContextChain, rootContextInThisThread, used
iterationContextLockedInThisThread
Constructor and Description |
---|
ReplicatedChronicleMapHolderImpl(ChainingInterface rootContextInThisThread,
net.openhft.chronicle.map.VanillaChronicleMap map) |
ReplicatedChronicleMapHolderImpl(net.openhft.chronicle.map.VanillaChronicleMap map) |
Modifier and Type | Method and Description |
---|---|
net.openhft.chronicle.hash.impl.VanillaChronicleHash<K,?,?,?> |
h() |
ChronicleHash<K,?,?,?> |
hash() |
void |
initMap(net.openhft.chronicle.map.VanillaChronicleMap map)
This method stores a reference to the context's owner ChronicleMap into a field of the
context in the beginning of each usage of the context.
|
net.openhft.chronicle.map.ReplicatedChronicleMap<K,V,R> |
m() |
ChronicleMap<K,V> |
map() |
ChronicleSet<K> |
set() |
contextAtIndexInChain, getContext, getContextChain, initUsed, usedInit
closeContext, lockContextLocally, owner, unlockContextLocally
public ReplicatedChronicleMapHolderImpl(net.openhft.chronicle.map.VanillaChronicleMap map)
public ReplicatedChronicleMapHolderImpl(ChainingInterface rootContextInThisThread, net.openhft.chronicle.map.VanillaChronicleMap map)
public void initMap(net.openhft.chronicle.map.VanillaChronicleMap map)
Chaining
The chain of strong references:
1) Thread ->
2) ThreadLocalMap ->
3) Entry with ThreadLocal VanillaChronicleMap.cxt
as weak
referent and a context (e. g. CompiledMapQueryContext
)
as value (a simple field, not a weak reference!) ->
4) final reference to the owner VanillaChronicleMap
->
5) ThreadLocal VanillaChronicleMap.cxt
(a strong reference
this time! note that this ThreadLocal is an instance field of VanillaChronicleMap)
So in order to break this chain at step 4), contexts store references to their owner ChronicleMaps only when contexts are used.
public net.openhft.chronicle.hash.impl.VanillaChronicleHash<K,?,?,?> h()
public ChronicleMap<K,V> map()
public ChronicleSet<K> set()
public ChronicleHash<K,?,?,?> hash()
Copyright © 2021. All rights reserved.