internal void PropagateOptions(CacheEntry parent) { if (parent == null) { return; } // Copy expiration tokens and AbsoluteExpiration to the cache entries hierarchy. // We do this regardless of it gets cached because the tokens are associated with the value we'll return. if (_expirationTokens != null) { lock (_lock) { lock (parent._lock) { foreach (var expirationToken in _expirationTokens) { parent.AddExpirationToken(expirationToken); } } } } if (_absoluteExpiration.HasValue) { if (!parent._absoluteExpiration.HasValue || _absoluteExpiration < parent._absoluteExpiration) { parent._absoluteExpiration = _absoluteExpiration; } } }
internal void PropagateTokens(CacheEntry parentEntry) { if (_expirationTokens != null) { lock (this) { lock (parentEntry.GetOrCreateTokens()) { foreach (IChangeToken expirationToken in _expirationTokens) { parentEntry.AddExpirationToken(expirationToken); } } } } }