예제 #1
0
		public void Initialize_CreatedNew_ReturnsTrue()
		{
			using (var mutex = new GlobalMutex("test"))
			{
				mutex.Unlink();
				Assert.That(mutex.Initialize(), Is.True);
			}
		}
예제 #2
0
		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);
			}
		}
예제 #3
0
		public void InitializeAndLock_Reentrancy_DoesNotBlock()
		{
			using (var mutex = new GlobalMutex("test"))
			{
				using (mutex.InitializeAndLock())
				{
					using (mutex.Lock()) {}
				}
			}
		}
예제 #4
0
		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);
			}
		}
예제 #5
0
		public void Lock_Reentrancy_DoesNotBlock()
		{
			using (var mutex = new GlobalMutex("test"))
			{
				mutex.Initialize();
				using (mutex.Lock())
				{
					using (mutex.Lock()) {}
				}
				mutex.Unlink();
			}
		}
예제 #6
0
		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);
				}
			}
		}
예제 #7
0
파일: Sldr.cs 프로젝트: regnrand/libpalaso
		/// <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;
		}
예제 #8
0
파일: Sldr.cs 프로젝트: regnrand/libpalaso
		/// <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;
		}
예제 #9
0
파일: Sldr.cs 프로젝트: jwickberg/libpalaso
		static Sldr()
		{
			SldrCacheMutex = new GlobalMutex("SldrCache");
			SldrCacheMutex.Initialize();
			SldrCachePath = DefaultSldrCachePath;
			EmbeddedAllTagsTime = DefaultEmbeddedAllTagsTime;
		}