1 write to _tokens
Microsoft.Extensions.Caching.Memory (1)
CacheEntry.cs (1)
332return Interlocked.CompareExchange(ref _tokens, result, null) ?? result;
18 references to _tokens
Microsoft.Extensions.Caching.Memory (18)
CacheEntry.CacheEntryTokens.cs (2)
124Debug.Assert(entry._tokens != null); 125List<PostEvictionCallbackRegistration>? callbackRegistrations = Interlocked.Exchange(ref entry._tokens._postEvictionCallbacks, null);
CacheEntry.cs (16)
137[MemberNotNull(nameof(_tokens))] 143[MemberNotNull(nameof(_tokens))] 201_tokens?.EnableConcurrentReads(); 235_tokens?.PropagateTokens(parent); 246|| (_tokens != null && _tokens.CheckForExpiredTokens(this)); 258_tokens?.DetachTokens(); 290internal void AttachTokens() => _tokens?.AttachTokens(this); 303internal void InvokeEvictionCallbacks() => _tokens?.InvokeEvictionCallbacks(this); 307if ((_tokens == null || !_tokens.CanPropagateTokens()) && _absoluteExpirationTicks < 0 || _current.Value is not CacheEntry parent) 320_tokens?.PropagateTokens(parent); 323[MemberNotNull(nameof(_tokens))] 326if (_tokens != null) 328return _tokens; 335[MemberNotNull(nameof(_tokens))]