Add missing Debugger and ReliabilityContract attributes to .NET 4 types
[mono.git] / mcs / class / corlib / System.Threading / SynchronizationContext.cs
index 6ede32d76245ec724a7cf0fc8ec5a96a35de798e..cb7369fb0ff1aa3179c45b56c47beb95d5e30154 100644 (file)
@@ -26,8 +26,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_2_0
-
 using System.Runtime.ConstrainedExecution;
 using System.Runtime.InteropServices;
 
@@ -51,7 +49,13 @@ namespace System.Threading
                
                public static SynchronizationContext Current
                {
-                       get { return currentContext; }
+                       get {
+#if NET_2_1
+                               if (currentContext == null)
+                                       currentContext = new SynchronizationContext ();
+#endif
+                               return currentContext;
+                       }
                }
 
                public virtual SynchronizationContext CreateCopy ()
@@ -81,19 +85,20 @@ namespace System.Threading
                {
                        d (state);
                }
-
-               [Obsolete ("does not exists anymore in 2.0 beta2")]
-               public virtual void SendOrPost (SendOrPostCallback d, object state)
-               {
-                       Send (d, state);
-               }
                
-               [MonoTODO]
                public static void SetSynchronizationContext (SynchronizationContext syncContext)
                {
-                       throw new NotImplementedException ();
+                       currentContext = syncContext;
                }
 
+#if NET_2_1
+               [Obsolete]
+               public static void SetThreadStaticContext (SynchronizationContext syncContext)
+               {
+                       currentContext = syncContext;
+               }
+#endif
+
                [MonoTODO]
                protected void SetWaitNotificationRequired ()
                {
@@ -118,5 +123,3 @@ namespace System.Threading
                }
        }
 }
-
-#endif