NHibernate.Caches.Redis.RedisCache.TryAcquireLock C# (CSharp) Method

TryAcquireLock() private method

private TryAcquireLock ( LockData lockData ) : bool
lockData LockData
return bool
        private bool TryAcquireLock(LockData lockData)
        {
            var db = GetDatabase();

            // Don't use IDatabase.LockTake() because we don't use the matching
            // LockRelease(). So, avoid any confusion. Besides, LockTake() just
            // calls this anyways.
            var wasLockAcquired = db.StringSet(lockData.LockKey, lockData.LockValue, lockTimeout, When.NotExists);

            if (wasLockAcquired)
            {
                // It's ok to use Set() instead of Add() because the lock in 
                // Redis will cause other clients to wait.
                acquiredLocks.Set(lockData.Key, lockData, absoluteExpiration: DateTime.UtcNow.Add(lockTimeout));
            }

            return wasLockAcquired;
        }