Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Toub <stoub@microsoft.com>2018-03-02 00:58:54 +0300
committerAhson Khan <ahkha@microsoft.com>2018-03-02 07:26:31 +0300
commit190c12208f41b35718087f6775a7bcb390d266a6 (patch)
tree97b9233699c26613fb5a40f55438100774b858fd
parent979dbf50d906c4ef9a9a132df52d2b27c777b100 (diff)
Change several ValueTask properties to methods (dotnet/coreclr#16691)
These do unsafe casts on an object, and we don't want a debugger's automatic evaluation accidentally invoking them. That means either making them methods or adding [DebuggerBrowsable(DebuggerBrowsableState.Never)], and the former seems cleaner. Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
-rw-r--r--src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs26
-rw-r--r--src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ValueTaskAwaiter.cs26
-rw-r--r--src/System.Private.CoreLib/shared/System/Threading/Tasks/ValueTask.cs90
3 files changed, 65 insertions, 77 deletions
diff --git a/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs b/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs
index e85e42e5f..b6f12299b 100644
--- a/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs
+++ b/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs
@@ -61,11 +61,11 @@ namespace System.Runtime.CompilerServices
{
if (_value.ObjectIsTask)
{
- _value.UnsafeTask.ConfigureAwait(_value.ContinueOnCapturedContext).GetAwaiter().OnCompleted(continuation);
+ _value.UnsafeGetTask().ConfigureAwait(_value.ContinueOnCapturedContext).GetAwaiter().OnCompleted(continuation);
}
else if (_value._obj != null)
{
- _value.UnsafeValueTaskSource.OnCompleted(ValueTaskAwaiter.s_invokeActionDelegate, continuation, _value._token,
+ _value.UnsafeGetValueTaskSource().OnCompleted(ValueTaskAwaiter.s_invokeActionDelegate, continuation, _value._token,
ValueTaskSourceOnCompletedFlags.FlowExecutionContext |
(_value.ContinueOnCapturedContext ? ValueTaskSourceOnCompletedFlags.UseSchedulingContext : ValueTaskSourceOnCompletedFlags.None));
}
@@ -80,11 +80,11 @@ namespace System.Runtime.CompilerServices
{
if (_value.ObjectIsTask)
{
- _value.UnsafeTask.ConfigureAwait(_value.ContinueOnCapturedContext).GetAwaiter().UnsafeOnCompleted(continuation);
+ _value.UnsafeGetTask().ConfigureAwait(_value.ContinueOnCapturedContext).GetAwaiter().UnsafeOnCompleted(continuation);
}
else if (_value._obj != null)
{
- _value.UnsafeValueTaskSource.OnCompleted(ValueTaskAwaiter.s_invokeActionDelegate, continuation, _value._token,
+ _value.UnsafeGetValueTaskSource().OnCompleted(ValueTaskAwaiter.s_invokeActionDelegate, continuation, _value._token,
_value.ContinueOnCapturedContext ? ValueTaskSourceOnCompletedFlags.UseSchedulingContext : ValueTaskSourceOnCompletedFlags.None);
}
else
@@ -98,11 +98,11 @@ namespace System.Runtime.CompilerServices
{
if (_value.ObjectIsTask)
{
- TaskAwaiter.UnsafeOnCompletedInternal(_value.UnsafeTask, box, _value.ContinueOnCapturedContext);
+ TaskAwaiter.UnsafeOnCompletedInternal(_value.UnsafeGetTask(), box, _value.ContinueOnCapturedContext);
}
else if (_value._obj != null)
{
- _value.UnsafeValueTaskSource.OnCompleted(ValueTaskAwaiter.s_invokeAsyncStateMachineBox, box, _value._token,
+ _value.UnsafeGetValueTaskSource().OnCompleted(ValueTaskAwaiter.s_invokeAsyncStateMachineBox, box, _value._token,
_value.ContinueOnCapturedContext ? ValueTaskSourceOnCompletedFlags.UseSchedulingContext : ValueTaskSourceOnCompletedFlags.None);
}
else
@@ -163,11 +163,11 @@ namespace System.Runtime.CompilerServices
{
if (_value.ObjectIsTask)
{
- _value.UnsafeTask.ConfigureAwait(_value.ContinueOnCapturedContext).GetAwaiter().OnCompleted(continuation);
+ _value.UnsafeGetTask().ConfigureAwait(_value.ContinueOnCapturedContext).GetAwaiter().OnCompleted(continuation);
}
else if (_value._obj != null)
{
- _value.UnsafeValueTaskSource.OnCompleted(ValueTaskAwaiter.s_invokeActionDelegate, continuation, _value._token,
+ _value.UnsafeGetValueTaskSource().OnCompleted(ValueTaskAwaiter.s_invokeActionDelegate, continuation, _value._token,
ValueTaskSourceOnCompletedFlags.FlowExecutionContext |
(_value.ContinueOnCapturedContext ? ValueTaskSourceOnCompletedFlags.UseSchedulingContext : ValueTaskSourceOnCompletedFlags.None));
}
@@ -182,11 +182,11 @@ namespace System.Runtime.CompilerServices
{
if (_value.ObjectIsTask)
{
- _value.UnsafeTask.ConfigureAwait(_value.ContinueOnCapturedContext).GetAwaiter().UnsafeOnCompleted(continuation);
+ _value.UnsafeGetTask().ConfigureAwait(_value.ContinueOnCapturedContext).GetAwaiter().UnsafeOnCompleted(continuation);
}
else if (_value._obj != null)
{
- _value.UnsafeValueTaskSource.OnCompleted(ValueTaskAwaiter.s_invokeActionDelegate, continuation, _value._token,
+ _value.UnsafeGetValueTaskSource().OnCompleted(ValueTaskAwaiter.s_invokeActionDelegate, continuation, _value._token,
_value.ContinueOnCapturedContext ? ValueTaskSourceOnCompletedFlags.UseSchedulingContext : ValueTaskSourceOnCompletedFlags.None);
}
else
@@ -200,11 +200,11 @@ namespace System.Runtime.CompilerServices
{
if (_value.ObjectIsTask)
{
- TaskAwaiter.UnsafeOnCompletedInternal(_value.UnsafeTask, box, _value.ContinueOnCapturedContext);
+ TaskAwaiter.UnsafeOnCompletedInternal(_value.UnsafeGetTask(), box, _value.ContinueOnCapturedContext);
}
else if (_value._obj != null)
{
- _value.UnsafeValueTaskSource.OnCompleted(ValueTaskAwaiter.s_invokeAsyncStateMachineBox, box, _value._token,
+ _value.UnsafeGetValueTaskSource().OnCompleted(ValueTaskAwaiter.s_invokeAsyncStateMachineBox, box, _value._token,
_value.ContinueOnCapturedContext ? ValueTaskSourceOnCompletedFlags.UseSchedulingContext : ValueTaskSourceOnCompletedFlags.None);
}
else
@@ -215,4 +215,4 @@ namespace System.Runtime.CompilerServices
#endif
}
}
-}
+} \ No newline at end of file
diff --git a/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ValueTaskAwaiter.cs b/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ValueTaskAwaiter.cs
index 2dad5d5f9..221a1a437 100644
--- a/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ValueTaskAwaiter.cs
+++ b/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ValueTaskAwaiter.cs
@@ -50,11 +50,11 @@ namespace System.Runtime.CompilerServices
{
if (_value.ObjectIsTask)
{
- _value.UnsafeTask.GetAwaiter().OnCompleted(continuation);
+ _value.UnsafeGetTask().GetAwaiter().OnCompleted(continuation);
}
else if (_value._obj != null)
{
- _value.UnsafeValueTaskSource.OnCompleted(s_invokeActionDelegate, continuation, _value._token, ValueTaskSourceOnCompletedFlags.UseSchedulingContext | ValueTaskSourceOnCompletedFlags.FlowExecutionContext);
+ _value.UnsafeGetValueTaskSource().OnCompleted(s_invokeActionDelegate, continuation, _value._token, ValueTaskSourceOnCompletedFlags.UseSchedulingContext | ValueTaskSourceOnCompletedFlags.FlowExecutionContext);
}
else
{
@@ -67,11 +67,11 @@ namespace System.Runtime.CompilerServices
{
if (_value.ObjectIsTask)
{
- _value.UnsafeTask.GetAwaiter().UnsafeOnCompleted(continuation);
+ _value.UnsafeGetTask().GetAwaiter().UnsafeOnCompleted(continuation);
}
else if (_value._obj != null)
{
- _value.UnsafeValueTaskSource.OnCompleted(s_invokeActionDelegate, continuation, _value._token, ValueTaskSourceOnCompletedFlags.UseSchedulingContext);
+ _value.UnsafeGetValueTaskSource().OnCompleted(s_invokeActionDelegate, continuation, _value._token, ValueTaskSourceOnCompletedFlags.UseSchedulingContext);
}
else
{
@@ -84,11 +84,11 @@ namespace System.Runtime.CompilerServices
{
if (_value.ObjectIsTask)
{
- TaskAwaiter.UnsafeOnCompletedInternal(_value.UnsafeTask, box, continueOnCapturedContext: true);
+ TaskAwaiter.UnsafeOnCompletedInternal(_value.UnsafeGetTask(), box, continueOnCapturedContext: true);
}
else if (_value._obj != null)
{
- _value.UnsafeValueTaskSource.OnCompleted(s_invokeAsyncStateMachineBox, box, _value._token, ValueTaskSourceOnCompletedFlags.UseSchedulingContext);
+ _value.UnsafeGetValueTaskSource().OnCompleted(s_invokeAsyncStateMachineBox, box, _value._token, ValueTaskSourceOnCompletedFlags.UseSchedulingContext);
}
else
{
@@ -141,11 +141,11 @@ namespace System.Runtime.CompilerServices
{
if (_value.ObjectIsTask)
{
- _value.UnsafeTask.GetAwaiter().OnCompleted(continuation);
+ _value.UnsafeGetTask().GetAwaiter().OnCompleted(continuation);
}
else if (_value._obj != null)
{
- _value.UnsafeValueTaskSource.OnCompleted(ValueTaskAwaiter.s_invokeActionDelegate, continuation, _value._token, ValueTaskSourceOnCompletedFlags.UseSchedulingContext | ValueTaskSourceOnCompletedFlags.FlowExecutionContext);
+ _value.UnsafeGetValueTaskSource().OnCompleted(ValueTaskAwaiter.s_invokeActionDelegate, continuation, _value._token, ValueTaskSourceOnCompletedFlags.UseSchedulingContext | ValueTaskSourceOnCompletedFlags.FlowExecutionContext);
}
else
{
@@ -158,11 +158,11 @@ namespace System.Runtime.CompilerServices
{
if (_value.ObjectIsTask)
{
- _value.UnsafeTask.GetAwaiter().UnsafeOnCompleted(continuation);
+ _value.UnsafeGetTask().GetAwaiter().UnsafeOnCompleted(continuation);
}
else if (_value._obj != null)
{
- _value.UnsafeValueTaskSource.OnCompleted(ValueTaskAwaiter.s_invokeActionDelegate, continuation, _value._token, ValueTaskSourceOnCompletedFlags.UseSchedulingContext);
+ _value.UnsafeGetValueTaskSource().OnCompleted(ValueTaskAwaiter.s_invokeActionDelegate, continuation, _value._token, ValueTaskSourceOnCompletedFlags.UseSchedulingContext);
}
else
{
@@ -175,11 +175,11 @@ namespace System.Runtime.CompilerServices
{
if (_value.ObjectIsTask)
{
- TaskAwaiter.UnsafeOnCompletedInternal(_value.UnsafeTask, box, continueOnCapturedContext: true);
+ TaskAwaiter.UnsafeOnCompletedInternal(_value.UnsafeGetTask(), box, continueOnCapturedContext: true);
}
else if (_value._obj != null)
{
- _value.UnsafeValueTaskSource.OnCompleted(ValueTaskAwaiter.s_invokeAsyncStateMachineBox, box, _value._token, ValueTaskSourceOnCompletedFlags.UseSchedulingContext);
+ _value.UnsafeGetValueTaskSource().OnCompleted(ValueTaskAwaiter.s_invokeAsyncStateMachineBox, box, _value._token, ValueTaskSourceOnCompletedFlags.UseSchedulingContext);
}
else
{
@@ -198,4 +198,4 @@ namespace System.Runtime.CompilerServices
void AwaitUnsafeOnCompleted(IAsyncStateMachineBox box);
}
#endif
-}
+} \ No newline at end of file
diff --git a/src/System.Private.CoreLib/shared/System/Threading/Tasks/ValueTask.cs b/src/System.Private.CoreLib/shared/System/Threading/Tasks/ValueTask.cs
index c46a6cbc1..18e4a27a4 100644
--- a/src/System.Private.CoreLib/shared/System/Threading/Tasks/ValueTask.cs
+++ b/src/System.Private.CoreLib/shared/System/Threading/Tasks/ValueTask.cs
@@ -101,27 +101,21 @@ namespace System.Threading.Tasks
}
/// <summary>Returns the <see cref="Task"/> stored in <see cref="_obj"/>. This uses <see cref="Unsafe"/>.</summary>
- internal Task UnsafeTask
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ internal Task UnsafeGetTask()
{
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- get
- {
- Debug.Assert(ObjectIsTask);
- Debug.Assert(_obj is Task);
- return Unsafe.As<Task>(_obj);
- }
+ Debug.Assert(ObjectIsTask);
+ Debug.Assert(_obj is Task);
+ return Unsafe.As<Task>(_obj);
}
/// <summary>Returns the <see cref="IValueTaskSource"/> stored in <see cref="_obj"/>. This uses <see cref="Unsafe"/>.</summary>
- internal IValueTaskSource UnsafeValueTaskSource
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ internal IValueTaskSource UnsafeGetValueTaskSource()
{
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- get
- {
- Debug.Assert(!ObjectIsTask);
- Debug.Assert(_obj is IValueTaskSource);
- return Unsafe.As<IValueTaskSource>(_obj);
- }
+ Debug.Assert(!ObjectIsTask);
+ Debug.Assert(_obj is IValueTaskSource);
+ return Unsafe.As<IValueTaskSource>(_obj);
}
/// <summary>Returns the hash code for this instance.</summary>
@@ -152,7 +146,7 @@ namespace System.Threading.Tasks
/// </remarks>
public Task AsTask() =>
_obj == null ? ValueTask.CompletedTask :
- ObjectIsTask ? UnsafeTask :
+ ObjectIsTask ? UnsafeGetTask() :
GetTaskForValueTaskSource();
/// <summary>Gets a <see cref="ValueTask"/> that may be used at any point in the future.</summary>
@@ -161,7 +155,7 @@ namespace System.Threading.Tasks
/// <summary>Creates a <see cref="Task"/> to represent the <see cref="IValueTaskSource"/>.</summary>
private Task GetTaskForValueTaskSource()
{
- IValueTaskSource t = UnsafeValueTaskSource;
+ IValueTaskSource t = UnsafeGetValueTaskSource();
ValueTaskSourceStatus status = t.GetStatus(_token);
if (status != ValueTaskSourceStatus.Pending)
{
@@ -288,7 +282,7 @@ namespace System.Threading.Tasks
public bool IsCompleted
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- get => _obj == null || (ObjectIsTask ? UnsafeTask.IsCompleted : UnsafeValueTaskSource.GetStatus(_token) != ValueTaskSourceStatus.Pending);
+ get => _obj == null || (ObjectIsTask ? UnsafeGetTask().IsCompleted : UnsafeGetValueTaskSource().GetStatus(_token) != ValueTaskSourceStatus.Pending);
}
/// <summary>Gets whether the <see cref="ValueTask"/> represents a successfully completed operation.</summary>
@@ -301,9 +295,9 @@ namespace System.Threading.Tasks
#if netstandard
UnsafeTask.Status == TaskStatus.RanToCompletion :
#else
- UnsafeTask.IsCompletedSuccessfully :
+ UnsafeGetTask().IsCompletedSuccessfully :
#endif
- UnsafeValueTaskSource.GetStatus(_token) == ValueTaskSourceStatus.Succeeded);
+ UnsafeGetValueTaskSource().GetStatus(_token) == ValueTaskSourceStatus.Succeeded);
}
/// <summary>Gets whether the <see cref="ValueTask"/> represents a failed operation.</summary>
@@ -311,7 +305,7 @@ namespace System.Threading.Tasks
{
get =>
_obj != null &&
- (ObjectIsTask ? UnsafeTask.IsFaulted : UnsafeValueTaskSource.GetStatus(_token) == ValueTaskSourceStatus.Faulted);
+ (ObjectIsTask ? UnsafeGetTask().IsFaulted : UnsafeGetValueTaskSource().GetStatus(_token) == ValueTaskSourceStatus.Faulted);
}
/// <summary>Gets whether the <see cref="ValueTask"/> represents a canceled operation.</summary>
@@ -324,7 +318,7 @@ namespace System.Threading.Tasks
{
get =>
_obj != null &&
- (ObjectIsTask ? UnsafeTask.IsCanceled : UnsafeValueTaskSource.GetStatus(_token) == ValueTaskSourceStatus.Canceled);
+ (ObjectIsTask ? UnsafeGetTask().IsCanceled : UnsafeGetValueTaskSource().GetStatus(_token) == ValueTaskSourceStatus.Canceled);
}
/// <summary>Throws the exception that caused the <see cref="ValueTask"/> to fail. If it completed successfully, nothing is thrown.</summary>
@@ -339,12 +333,12 @@ namespace System.Threading.Tasks
#if netstandard
UnsafeTask.GetAwaiter().GetResult();
#else
- TaskAwaiter.ValidateEnd(UnsafeTask);
+ TaskAwaiter.ValidateEnd(UnsafeGetTask());
#endif
}
else
{
- UnsafeValueTaskSource.GetResult(_token);
+ UnsafeGetValueTaskSource().GetResult(_token);
}
}
}
@@ -465,27 +459,21 @@ namespace System.Threading.Tasks
}
/// <summary>Returns the <see cref="Task{TResult}"/> stored in <see cref="_obj"/>. This uses <see cref="Unsafe"/>.</summary>
- internal Task<TResult> UnsafeTask
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ internal Task<TResult> UnsafeGetTask()
{
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- get
- {
- Debug.Assert(ObjectIsTask);
- Debug.Assert(_obj is Task<TResult>);
- return Unsafe.As<Task<TResult>>(_obj);
- }
+ Debug.Assert(ObjectIsTask);
+ Debug.Assert(_obj is Task<TResult>);
+ return Unsafe.As<Task<TResult>>(_obj);
}
/// <summary>Returns the <see cref="IValueTaskSource{TResult}"/> stored in <see cref="_obj"/>. This uses <see cref="Unsafe"/>.</summary>
- internal IValueTaskSource<TResult> UnsafeValueTaskSource
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ internal IValueTaskSource<TResult> UnsafeGetValueTaskSource()
{
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- get
- {
- Debug.Assert(!ObjectIsTask);
- Debug.Assert(_obj is IValueTaskSource<TResult>);
- return Unsafe.As<IValueTaskSource<TResult>>(_obj);
- }
+ Debug.Assert(!ObjectIsTask);
+ Debug.Assert(_obj is IValueTaskSource<TResult>);
+ return Unsafe.As<IValueTaskSource<TResult>>(_obj);
}
/// <summary>Returns the hash code for this instance.</summary>
@@ -527,7 +515,7 @@ namespace System.Threading.Tasks
#else
AsyncTaskMethodBuilder<TResult>.GetTaskForResult(_result) :
#endif
- ObjectIsTask ? UnsafeTask :
+ ObjectIsTask ? UnsafeGetTask() :
GetTaskForValueTaskSource();
/// <summary>Gets a <see cref="ValueTask{TResult}"/> that may be used at any point in the future.</summary>
@@ -536,7 +524,7 @@ namespace System.Threading.Tasks
/// <summary>Creates a <see cref="Task{TResult}"/> to represent the <see cref="IValueTaskSource{TResult}"/>.</summary>
private Task<TResult> GetTaskForValueTaskSource()
{
- IValueTaskSource<TResult> t = UnsafeValueTaskSource;
+ IValueTaskSource<TResult> t = UnsafeGetValueTaskSource();
ValueTaskSourceStatus status = t.GetStatus(_token);
if (status != ValueTaskSourceStatus.Pending)
{
@@ -666,7 +654,7 @@ namespace System.Threading.Tasks
public bool IsCompleted
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- get => _obj == null || (ObjectIsTask ? UnsafeTask.IsCompleted : UnsafeValueTaskSource.GetStatus(_token) != ValueTaskSourceStatus.Pending);
+ get => _obj == null || (ObjectIsTask ? UnsafeGetTask().IsCompleted : UnsafeGetValueTaskSource().GetStatus(_token) != ValueTaskSourceStatus.Pending);
}
/// <summary>Gets whether the <see cref="ValueTask{TResult}"/> represents a successfully completed operation.</summary>
@@ -679,9 +667,9 @@ namespace System.Threading.Tasks
#if netstandard
UnsafeTask.Status == TaskStatus.RanToCompletion :
#else
- UnsafeTask.IsCompletedSuccessfully :
+ UnsafeGetTask().IsCompletedSuccessfully :
#endif
- UnsafeValueTaskSource.GetStatus(_token) == ValueTaskSourceStatus.Succeeded);
+ UnsafeGetValueTaskSource().GetStatus(_token) == ValueTaskSourceStatus.Succeeded);
}
/// <summary>Gets whether the <see cref="ValueTask{TResult}"/> represents a failed operation.</summary>
@@ -689,7 +677,7 @@ namespace System.Threading.Tasks
{
get =>
_obj != null &&
- (ObjectIsTask ? UnsafeTask.IsFaulted : UnsafeValueTaskSource.GetStatus(_token) == ValueTaskSourceStatus.Faulted);
+ (ObjectIsTask ? UnsafeGetTask().IsFaulted : UnsafeGetValueTaskSource().GetStatus(_token) == ValueTaskSourceStatus.Faulted);
}
/// <summary>Gets whether the <see cref="ValueTask{TResult}"/> represents a canceled operation.</summary>
@@ -702,7 +690,7 @@ namespace System.Threading.Tasks
{
get =>
_obj != null &&
- (ObjectIsTask ? UnsafeTask.IsCanceled : UnsafeValueTaskSource.GetStatus(_token) == ValueTaskSourceStatus.Canceled);
+ (ObjectIsTask ? UnsafeGetTask().IsCanceled : UnsafeGetValueTaskSource().GetStatus(_token) == ValueTaskSourceStatus.Canceled);
}
/// <summary>Gets the result.</summary>
@@ -721,13 +709,13 @@ namespace System.Threading.Tasks
#if netstandard
return UnsafeTask.GetAwaiter().GetResult();
#else
- Task<TResult> t = UnsafeTask;
+ Task<TResult> t = UnsafeGetTask();
TaskAwaiter.ValidateEnd(t);
return t.ResultOnSuccess;
#endif
}
- return UnsafeValueTaskSource.GetResult(_token);
+ return UnsafeGetValueTaskSource().GetResult(_token);
}
}
@@ -784,4 +772,4 @@ namespace System.Threading.Tasks
/// </summary>
ObjectIsTask = 0x2
}
-}
+} \ No newline at end of file