diff --git a/src/Servers/Kestrel/Core/src/Internal/Http/Http1ContentLengthMessageBody.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1ContentLengthMessageBody.cs index 278fd98769c25e5896e39d23dd38bb61ca70c798..bbe6e0d951c01a8af0170a810b89ddbf89344616 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http/Http1ContentLengthMessageBody.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http/Http1ContentLengthMessageBody.cs @@ -5,6 +5,7 @@ using System; using System.Diagnostics; using System.Globalization; using System.IO.Pipelines; +using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Connections; @@ -29,6 +30,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http _unexaminedInputLength = contentLength; } + [AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder<>))] public override async ValueTask<ReadResult> ReadAsyncInternal(CancellationToken cancellationToken = default) { VerifyIsNotReading(); diff --git a/src/Servers/Kestrel/Core/src/Internal/Http/Http1UpgradeMessageBody.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1UpgradeMessageBody.cs index 2ea7420da2e1ff748717df451710a05aa3735f6f..643b3ce424b9b9b9c96382dc4f085df82670ba83 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http/Http1UpgradeMessageBody.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http/Http1UpgradeMessageBody.cs @@ -3,6 +3,7 @@ using System; using System.IO.Pipelines; +using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; @@ -92,6 +93,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http return new ValueTask<ReadResult>(readResult); } + [AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder<>))] private async ValueTask<ReadResult> ReadAsyncInternalAwaited(ValueTask<ReadResult> readTask, CancellationToken cancellationToken = default) { var readResult = await readTask; diff --git a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2MessageBody.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2MessageBody.cs index d0a0d34a159c5cdd33bc83dc732d07bf9c2e28ca..e187d0b1400478c156b0fc7d33a47d23d3fb9592 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2MessageBody.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2MessageBody.cs @@ -5,6 +5,7 @@ using System; using System.Diagnostics; using System.Globalization; using System.IO.Pipelines; +using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Connections; @@ -89,6 +90,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 return hasResult; } + [AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder<>))] public override async ValueTask<ReadResult> ReadAsync(CancellationToken cancellationToken = default) { await TryStartAsync(); diff --git a/src/Servers/Kestrel/Core/src/Internal/Http3/Http3MessageBody.cs b/src/Servers/Kestrel/Core/src/Internal/Http3/Http3MessageBody.cs index 86907c6f96672215dbc1aaa464a8b2d3f4554d78..fcaacf41563765c98d3cf9bc5b87711ea4515812 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http3/Http3MessageBody.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http3/Http3MessageBody.cs @@ -4,6 +4,7 @@ using System; using System.Globalization; using System.IO.Pipelines; +using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Connections; @@ -68,6 +69,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http3 return hasResult; } + [AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder<>))] public override async ValueTask<ReadResult> ReadAsync(CancellationToken cancellationToken = default) { await TryStartAsync(); diff --git a/src/Shared/ServerInfrastructure/DuplexPipeStream.cs b/src/Shared/ServerInfrastructure/DuplexPipeStream.cs index aed54205c86341b01fcf8a3fdf8a867a575adbda..f177ffb6431852158db0e18ebe5493a455d67ba8 100644 --- a/src/Shared/ServerInfrastructure/DuplexPipeStream.cs +++ b/src/Shared/ServerInfrastructure/DuplexPipeStream.cs @@ -8,6 +8,7 @@ using System.Threading; using System.Threading.Tasks; using System.Buffers; using Microsoft.AspNetCore.Internal; +using System.Runtime.CompilerServices; #nullable enable @@ -112,6 +113,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal return _output.FlushAsync(cancellationToken).GetAsTask(); } + [AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder<>))] private async ValueTask<int> ReadAsyncInternal(Memory<byte> destination, CancellationToken cancellationToken) { while (true)