Protect SpinLock's Enter method against asynchronous exception
[mono.git] / mcs / class / corlib / System.Threading / ManualResetEvent.cs
index 6ed2025738a9e8bc91e3a9de86655624b5edbef9..7aceafa482fb91eb722d807ff20059c1efbfb1d4 100644 (file)
@@ -9,7 +9,7 @@
 //
 
 //
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2004, 2005 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 
 using System;
 using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
 
 namespace System.Threading 
 {
-
-       public sealed class ManualResetEvent : WaitHandle 
+       [ComVisible (true)]
+       public sealed class ManualResetEvent : EventWaitHandle
        {
                // Constructor
                public ManualResetEvent (bool initialState)
+                       : base(initialState, EventResetMode.ManualReset)
                {
-                       Handle = NativeEventCalls.CreateEvent_internal (true, initialState, null);
-               }
-
-               // Methods
-
-               public bool Set()
-               {
-                       CheckDisposed ();
-                       return (NativeEventCalls.SetEvent_internal (Handle));
                }
-
-               public bool Reset()
-               {
-                       CheckDisposed ();
-                       return(NativeEventCalls.ResetEvent_internal (Handle));
-               }
-
        }
 }