public Guid AcquireLock(bool writeAccess, params string[] collections) { Guid sessionId = Guid.NewGuid(); LockPolicy.SmartRetry(() => TryAcquireLock(sessionId, writeAccess, collections)); return(sessionId); }
public void AcquireLock() { CheckStatus(Status.Initialized); CurrentStatus = Status.AcquiringLocks; LockPolicy.SmartRetry(TryAcquireLock); CurrentStatus = Status.LocksAcquired; }
public static ILock CreateLock(LockPolicy policy, bool allowRecursion) { switch (policy) { case LockPolicy.MostlyRead: return new ReadWriteLock(allowRecursion); case LockPolicy.MostlyWrite: case LockPolicy.SimilarReadAndWrite: return new MonitorLock(); default: return new MonitorLock(); } }
/// <summary> /// Acquire lock on a single node cluster /// </summary> /// <param name="writeAccess"></param> /// <param name="collections"></param> /// <returns></returns> public Guid AcquireLock(bool writeAccess, params string[] collections) { if (collections.Length == 0) { throw new ArgumentException("Value cannot be an empty collection.", nameof(collections)); } var sessionId = Guid.NewGuid(); LockPolicy.SmartRetry(() => TryAcquireLock(sessionId, writeAccess, collections)); return(sessionId); }
public static ILock CreateLock(LockPolicy policy, bool allowRecursion) { switch (policy) { case LockPolicy.MostlyRead: return(new ReadWriteLock(allowRecursion)); case LockPolicy.MostlyWrite: case LockPolicy.SimilarReadAndWrite: return(new MonitorLock()); default: return(new MonitorLock()); } }
public static ILock CreateLock(LockPolicy policy) { return(CreateLock(policy, false)); }
private void AcquireWriteLock(Guid sessionId, params string[] collectionNames) { Retries += LockPolicy.SmartRetry(() => TryAcquireWriteLock(sessionId, DefaultWaitForLockInMilliseconds, collectionNames)); }
public static ILock CreateLock(LockPolicy policy) { return CreateLock(policy, false); }