protected LockResult <TSource> TryGetLock <TSource>(RedisClient client, string key, TimeSpan lockAgeTimeout, TimeSpan lockAcquisitionTimeout = new TimeSpan()) { var dlmLock = client.AcquireDlmLock(key, lockAcquisitionTimeout, lockAgeTimeout); if (!dlmLock.IsAcquired) { return(LockResult <TSource> .Fail(key)); } var value = dlmLock.GetValue <TSource>(client); return(new LockResult <TSource>(key, true, new LockHandleWrapper(key, dlmLock), value)); }