Change Task.WaitAll/Any overloads to call WaitAll/AnyCore directly
authorStephen Toub <stoub@microsoft.com>
Tue, 8 Aug 2017 18:55:06 +0000 (14:55 -0400)
committerStephen Toub <stoub@microsoft.com>
Tue, 8 Aug 2017 18:55:06 +0000 (14:55 -0400)
Avoid multiple unnecessary levels of NoOptimization frames.

src/mscorlib/src/System/Threading/Tasks/Task.cs

index 20dd6c7..1395219 100644 (file)
@@ -4463,7 +4463,7 @@ namespace System.Threading.Tasks
 #if DEBUG
             bool waitResult =
 #endif
-            WaitAll(tasks, Timeout.Infinite);
+            WaitAllCore(tasks, Timeout.Infinite, default(CancellationToken));
 
 #if DEBUG
             Debug.Assert(waitResult, "expected wait to succeed");
@@ -4508,7 +4508,7 @@ namespace System.Threading.Tasks
                 ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.timeout);
             }
 
-            return WaitAll(tasks, (int)totalMilliseconds);
+            return WaitAllCore(tasks, (int)totalMilliseconds, default(CancellationToken));
         }
 
         /// <summary>
@@ -4540,7 +4540,7 @@ namespace System.Threading.Tasks
         [MethodImpl(MethodImplOptions.NoOptimization)]  // this is needed for the parallel debugger
         public static bool WaitAll(Task[] tasks, int millisecondsTimeout)
         {
-            return WaitAll(tasks, millisecondsTimeout, default(CancellationToken));
+            return WaitAllCore(tasks, millisecondsTimeout, default(CancellationToken));
         }
 
         /// <summary>
@@ -4572,7 +4572,7 @@ namespace System.Threading.Tasks
         [MethodImpl(MethodImplOptions.NoOptimization)]  // this is needed for the parallel debugger
         public static void WaitAll(Task[] tasks, CancellationToken cancellationToken)
         {
-            WaitAll(tasks, Timeout.Infinite, cancellationToken);
+            WaitAllCore(tasks, Timeout.Infinite, cancellationToken);
         }
 
         /// <summary>
@@ -4857,7 +4857,7 @@ namespace System.Threading.Tasks
         [MethodImpl(MethodImplOptions.NoOptimization)]  // this is needed for the parallel debugger
         public static int WaitAny(params Task[] tasks)
         {
-            int waitResult = WaitAny(tasks, Timeout.Infinite);
+            int waitResult = WaitAnyCore(tasks, Timeout.Infinite, default(CancellationToken));
             Debug.Assert(tasks.Length == 0 || waitResult != -1, "expected wait to succeed");
             return waitResult;
         }
@@ -4896,7 +4896,7 @@ namespace System.Threading.Tasks
                 ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.timeout);
             }
 
-            return WaitAny(tasks, (int)totalMilliseconds);
+            return WaitAnyCore(tasks, (int)totalMilliseconds, default(CancellationToken));
         }
 
         /// <summary>
@@ -4923,7 +4923,7 @@ namespace System.Threading.Tasks
         [MethodImpl(MethodImplOptions.NoOptimization)]  // this is needed for the parallel debugger
         public static int WaitAny(Task[] tasks, CancellationToken cancellationToken)
         {
-            return WaitAny(tasks, Timeout.Infinite, cancellationToken);
+            return WaitAnyCore(tasks, Timeout.Infinite, cancellationToken);
         }
 
         /// <summary>
@@ -4953,7 +4953,7 @@ namespace System.Threading.Tasks
         [MethodImpl(MethodImplOptions.NoOptimization)]  // this is needed for the parallel debugger
         public static int WaitAny(Task[] tasks, int millisecondsTimeout)
         {
-            return WaitAny(tasks, millisecondsTimeout, default(CancellationToken));
+            return WaitAnyCore(tasks, millisecondsTimeout, default(CancellationToken));
         }
 
         /// <summary>