private long _gen; // copied for perfs internal Snapshot(SnapDictionary <TKey, TValue> store, GenerationReference generationReference) { _store = store; _generationReference = generationReference; _gen = generationReference.GenerationObject.Gen; _generationReference.GenerationObject.Reference(); }
public GenerationReference GetReference() { // not thread-safe but always invoked from within a lock var generationReference = (GenerationReference)WeakReference.Target; if (generationReference == null) { WeakReference.Target = generationReference = new GenerationReference(this); } return(generationReference); }