internal static ILockable CreateConcurrentLock(string key, LockStyle style) { switch (style) { case LockStyle.Single: return new ConcurrentSyncLock { Key = key }; case LockStyle.Mutex: return new ConcurrentMutexLock { Key = key }; case LockStyle.Database: return new ConcurrentDatabaseLock { Key = key }; case LockStyle.MSDTC: return new ConcurrentDTCLock { Key = key }; default: { var message = style + " ctor is not implement yet."; Log.Error(message); throw new ArgumentException(message); } } }
public static ILockable AquireConcurrentLock(string key, LockStyle style, TimeSpan mutexTimeout, TimeSpan acquireMutexTimeout) { var concurrtLock = CreateConcurrentLock(key, style); concurrtLock.Acquire(mutexTimeout, acquireMutexTimeout, null); return concurrtLock; }
public GlobalMutexScope(string key, LockStyle style, TimeSpan cacheTimeout, TimeSpan retryTimeout) { _concurrentLock = AquireConcurrentLock(key, style, cacheTimeout, retryTimeout); }
public static ILockable AquireConcurrentLock(string key, LockStyle style, TimeSpan cacheTimeout) { return AquireConcurrentLock(key, style, cacheTimeout, AcquireMutexTimeout); }
public GlobalMutexScope(string key, LockStyle style) { _concurrentLock = AquireConcurrentLock(key, style); }