Use task.IsCompletedSuccessfully rather than ReferenceEquals (#11606)
This commit is contained in:
parent
9c69287ed0
commit
7e9de494b7
|
|
@ -109,9 +109,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers
|
|||
{
|
||||
var flushTask = FlushAsyncCore();
|
||||
|
||||
// FlushAsyncCore will return CompletedTask if nothing sync buffered
|
||||
// Fast-path and skip async state-machine if only a single async operation
|
||||
return ReferenceEquals(flushTask, Task.CompletedTask) ?
|
||||
return flushTask.IsCompletedSuccessfully ?
|
||||
_inner.WriteAsync(value) :
|
||||
WriteAsyncAwaited(flushTask, value);
|
||||
}
|
||||
|
|
@ -126,9 +124,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers
|
|||
{
|
||||
var flushTask = FlushAsyncCore();
|
||||
|
||||
// FlushAsyncCore will return CompletedTask if nothing sync buffered
|
||||
// Fast-path and skip async state-machine if only a single async operation
|
||||
return ReferenceEquals(flushTask, Task.CompletedTask) ?
|
||||
return flushTask.IsCompletedSuccessfully ?
|
||||
_inner.WriteAsync(buffer, index, count) :
|
||||
WriteAsyncAwaited(flushTask, buffer, index, count);
|
||||
}
|
||||
|
|
@ -143,9 +139,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Buffers
|
|||
{
|
||||
var flushTask = FlushAsyncCore();
|
||||
|
||||
// FlushAsyncCore will return CompletedTask if nothing sync buffered
|
||||
// Fast-path and skip async state-machine if only a single async operation
|
||||
return ReferenceEquals(flushTask, Task.CompletedTask) ?
|
||||
return flushTask.IsCompletedSuccessfully ?
|
||||
_inner.WriteAsync(value) :
|
||||
WriteAsyncAwaited(flushTask, value);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -767,7 +767,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
|
|||
while (onStarting.TryPop(out var entry))
|
||||
{
|
||||
var task = entry.Key.Invoke(entry.Value);
|
||||
if (!ReferenceEquals(task, Task.CompletedTask))
|
||||
if (!task.IsCompletedSuccessfully)
|
||||
{
|
||||
return FireOnStartingAwaited(task, onStarting);
|
||||
}
|
||||
|
|
@ -817,7 +817,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
|
|||
try
|
||||
{
|
||||
var task = entry.Key.Invoke(entry.Value);
|
||||
if (!ReferenceEquals(task, Task.CompletedTask))
|
||||
if (!task.IsCompletedSuccessfully)
|
||||
{
|
||||
return FireOnCompletedAwaited(task, onCompleted);
|
||||
}
|
||||
|
|
@ -953,8 +953,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
|
|||
public Task InitializeResponseAsync(int firstWriteByteCount)
|
||||
{
|
||||
var startingTask = FireOnStarting();
|
||||
// If return is Task.CompletedTask no awaiting is required
|
||||
if (!ReferenceEquals(startingTask, Task.CompletedTask))
|
||||
if (!startingTask.IsCompletedSuccessfully)
|
||||
{
|
||||
return InitializeResponseAwaited(startingTask, firstWriteByteCount);
|
||||
}
|
||||
|
|
@ -1397,8 +1396,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
|
|||
if (!HasResponseStarted)
|
||||
{
|
||||
var initializeTask = InitializeResponseAsync(0);
|
||||
// If return is Task.CompletedTask no awaiting is required
|
||||
if (!ReferenceEquals(initializeTask, Task.CompletedTask))
|
||||
if (!initializeTask.IsCompletedSuccessfully)
|
||||
{
|
||||
return FlushAsyncAwaited(initializeTask, cancellationToken);
|
||||
}
|
||||
|
|
@ -1509,8 +1507,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
|
|||
Debug.Assert(!HasResponseStarted);
|
||||
|
||||
var startingTask = FireOnStarting();
|
||||
|
||||
if (!ReferenceEquals(startingTask, Task.CompletedTask))
|
||||
if (!startingTask.IsCompletedSuccessfully)
|
||||
{
|
||||
return FirstWriteAsyncAwaited(startingTask, data, cancellationToken);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure
|
|||
try
|
||||
{
|
||||
var task = entry.Key.Invoke(entry.Value);
|
||||
if (!ReferenceEquals(task, Task.CompletedTask))
|
||||
if (!task.IsCompletedSuccessfully)
|
||||
{
|
||||
return CompleteAsyncAwaited(task, onCompleted);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue