Gigya.Microdot.ServiceProxy/Caching/AsyncCache.cs
/// <summary>
/// For revocable items, move over all revoke ids in cache index and remove them.
/// </summary>        
For revocable items, move over all revoke ids in cache index and remove them.
For revocable items move over all revoke ids in cache index and remove them .
private void ItemRemovedCallback(CacheEntryRemovedArguments arguments)
        {
            Items.Meter(arguments.RemovedReason.ToString(), Unit.Items).Mark();
            var cacheItem = (AsyncCacheItem)arguments.CacheItem.Value;
            var revokeKeys = ExtarctRevokeKeys(cacheItem.Value);
            lock (RevokeKeyToCacheItemsIndex)
                foreach (var revokeKey in revokeKeys)
                    if (   !RevokeKeyToCacheItemsIndex.TryGetValue(revokeKey, out var hash)
                           || !hash.Remove(cacheItem)
                           || (hash.Count == 0 && !RevokeKeyToCacheItemsIndex.TryRemove(revokeKey, out _)))
                        throw new ProgrammaticException("Invalid state");
        }
private void ItemRemovedCallback ( CacheEntryRemovedArguments arguments ) { Items . Meter ( arguments . RemovedReason . ToString ( ) , Unit . Items ) . Mark ( ) ; var cacheItem = ( AsyncCacheItem ) arguments . CacheItem . Value ; var revokeKeys = ExtarctRevokeKeys ( cacheItem . Value ) ; lock ( RevokeKeyToCacheItemsIndex ) foreach ( var revokeKey in revokeKeys ) if ( ! RevokeKeyToCacheItemsIndex . TryGetValue ( revokeKey , out var hash ) || ! hash . Remove ( cacheItem ) || ( hash . Count == 0 && ! RevokeKeyToCacheItemsIndex . TryRemove ( revokeKey , out _ ) ) ) throw new ProgrammaticException ( " " ) ; }
For revocable items, move over all revoke ids in cache index and remove them.
For revocable items move over all revoke ids in cache index and remove them .
//Can lock as revokeKeys > 0
arguments
CacheEntryRemovedArguments