From 99ec60f196985e1208a63637e8952071515bc1ff Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Tue, 8 Aug 2017 14:55:06 -0400 Subject: [PATCH] Change Task.WaitAll/Any overloads to call WaitAll/AnyCore directly Avoid multiple unnecessary levels of NoOptimization frames. --- src/mscorlib/src/System/Threading/Tasks/Task.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/mscorlib/src/System/Threading/Tasks/Task.cs b/src/mscorlib/src/System/Threading/Tasks/Task.cs index 20dd6c7..1395219 100644 --- a/src/mscorlib/src/System/Threading/Tasks/Task.cs +++ b/src/mscorlib/src/System/Threading/Tasks/Task.cs @@ -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)); } /// @@ -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)); } /// @@ -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); } /// @@ -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)); } /// @@ -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); } /// @@ -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)); } /// -- 2.7.4