public void Initialize_CreatedNew_ReturnsTrue() { using (var mutex = new GlobalMutex("test")) { mutex.Unlink(); Assert.That(mutex.Initialize(), Is.True); } }
public void Initialize_Existing_ReturnsFalse() { using (var mutex1 = new GlobalMutex("test")) { mutex1.Initialize(); using (var mutex2 = new GlobalMutex("test")) Assert.That(mutex2.Initialize(), Is.False); } }
public void InitializeAndLock_Reentrancy_DoesNotBlock() { using (var mutex = new GlobalMutex("test")) { using (mutex.InitializeAndLock()) { using (mutex.Lock()) {} } } }
public void InitializeAndLock_CreatedNew_ReturnsTrue() { using (var mutex = new GlobalMutex("test")) { mutex.Unlink(); bool createdNew; using (mutex.InitializeAndLock(out createdNew)) {} Assert.That(createdNew, Is.True); } }
public void Lock_Reentrancy_DoesNotBlock() { using (var mutex = new GlobalMutex("test")) { mutex.Initialize(); using (mutex.Lock()) { using (mutex.Lock()) {} } mutex.Unlink(); } }
public void InitializeAndLock_Existing_ReturnsFalse() { using (var mutex1 = new GlobalMutex("test")) { mutex1.Initialize(); using (var mutex2 = new GlobalMutex("test")) { bool createdNew; using (mutex2.InitializeAndLock(out createdNew)) {} Assert.That(createdNew, Is.False); } } }
/// <summary> /// Cleans up the SLDR. This should be called to properly clean up SLDR resources. /// </summary> public static void Cleanup() { CheckInitialized(); _sldrCacheMutex.Dispose(); _sldrCacheMutex = null; _languageTags = null; }
/// <summary> /// This method is used for testing purposes. /// </summary> internal static void Initialize(bool offlineMode, string sldrCachePath, DateTime embeddedAllTagsTime) { if (IsInitialized) throw new InvalidOperationException("The SLDR has already been initialized."); _sldrCacheMutex = new GlobalMutex("SldrCache"); _sldrCacheMutex.Initialize(); _offlineMode = offlineMode; SldrCachePath = sldrCachePath; _embeddedAllTagsTime = embeddedAllTagsTime; }
static Sldr() { SldrCacheMutex = new GlobalMutex("SldrCache"); SldrCacheMutex.Initialize(); SldrCachePath = DefaultSldrCachePath; EmbeddedAllTagsTime = DefaultEmbeddedAllTagsTime; }