Ignore SynchronizationAttribute on MT
authorMarek Safar <marek.safar@gmail.com>
Thu, 7 Mar 2013 14:10:43 +0000 (15:10 +0100)
committerMarek Safar <marek.safar@gmail.com>
Thu, 7 Mar 2013 15:34:23 +0000 (16:34 +0100)
mcs/class/corlib/System.Threading/WaitHandle.cs

index 44accfd38547ba89933eafba9a216617eea01908..850925323621a9b454dae803487a9aea38cd7d4e 100644 (file)
@@ -371,17 +371,17 @@ namespace System.Threading
                        bool release = false;
                        try {
                                if (exitContext) {
-#if MONOTOUCH
-                                       throw new NotSupportedException ("exitContext == true is not supported");
-#else
+#if !MONOTOUCH
                                        SynchronizationAttribute.ExitContext ();
 #endif
                                }
                                safe_wait_handle.DangerousAddRef (ref release);
                                return (WaitOne_internal(safe_wait_handle.DangerousGetHandle (), millisecondsTimeout, exitContext));
                        } finally {
+#if !MONOTOUCH
                                if (exitContext)
                                        SynchronizationAttribute.EnterContext ();
+#endif
                                if (release)
                                        safe_wait_handle.DangerousRelease ();
                        }
@@ -407,9 +407,7 @@ namespace System.Threading
                        bool release = false;
                        try {
                                if (exitContext) {
-#if MONOTOUCH
-                                       throw new NotSupportedException ("exitContext == true is not supported");
-#else
+#if !MONOTOUCH
                                        SynchronizationAttribute.ExitContext ();
 #endif
                                }
@@ -417,8 +415,10 @@ namespace System.Threading
                                return (WaitOne_internal(safe_wait_handle.DangerousGetHandle (), (int) ms, exitContext));
                        }
                        finally {
+#if !MONOTOUCH
                                if (exitContext)
                                        SynchronizationAttribute.EnterContext ();
+#endif
                                if (release)
                                        safe_wait_handle.DangerousRelease ();
                        }