2 // System.Threading.Mutex.cs
6 // Dick Porter (dick@ximian.com)
7 // Veronica De Santis (veron78@interfree.it)
9 // (C) Ximian, Inc. http://www.ximian.com
13 using System.Runtime.CompilerServices;
15 namespace System.Threading
17 public sealed class Mutex : WaitHandle
19 [MethodImplAttribute(MethodImplOptions.InternalCall)]
20 private static extern IntPtr CreateMutex_internal(
24 [MethodImplAttribute(MethodImplOptions.InternalCall)]
25 private static extern void ReleaseMutex_internal(IntPtr handle);
28 os_handle=CreateMutex_internal(false,null);
31 public Mutex(bool initiallyOwned) {
32 os_handle=CreateMutex_internal(initiallyOwned,null);
35 public Mutex(bool initiallyOwned, string name) {
36 os_handle=CreateMutex_internal(initiallyOwned,name);
40 public Mutex(bool initiallyOwned, string name, out bool gotOwnership) {
41 os_handle=CreateMutex_internal(initiallyOwned,name);
45 public void ReleaseMutex() {
46 ReleaseMutex_internal(os_handle);