diff --git a/src/libraries/System.IO.Pipelines/src/System/IO/Pipelines/StreamPipeReader.cs b/src/libraries/System.IO.Pipelines/src/System/IO/Pipelines/StreamPipeReader.cs index 9b101ce7ac2de2..0cc899d29312e1 100644 --- a/src/libraries/System.IO.Pipelines/src/System/IO/Pipelines/StreamPipeReader.cs +++ b/src/libraries/System.IO.Pipelines/src/System/IO/Pipelines/StreamPipeReader.cs @@ -3,6 +3,7 @@ using System.Buffers; using System.Diagnostics; +using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; @@ -217,6 +218,9 @@ public override ValueTask ReadAsync(CancellationToken cancellationTo return Core(this, tokenSource, cancellationToken); +#if NETCOREAPP + [AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder<>))] +#endif static async ValueTask Core(StreamPipeReader reader, CancellationTokenSource tokenSource, CancellationToken cancellationToken) { CancellationTokenRegistration reg = default; @@ -302,6 +306,9 @@ protected override ValueTask ReadAtLeastAsyncCore(int minimumSize, C return Core(this, minimumSize, tokenSource, cancellationToken); +#if NETCOREAPP + [AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder<>))] +#endif static async ValueTask Core(StreamPipeReader reader, int minimumSize, CancellationTokenSource tokenSource, CancellationToken cancellationToken) { CancellationTokenRegistration reg = default; diff --git a/src/libraries/System.IO.Pipelines/src/System/IO/Pipelines/StreamPipeWriter.cs b/src/libraries/System.IO.Pipelines/src/System/IO/Pipelines/StreamPipeWriter.cs index 59c14e4ecd2e02..a8363343ebe059 100644 --- a/src/libraries/System.IO.Pipelines/src/System/IO/Pipelines/StreamPipeWriter.cs +++ b/src/libraries/System.IO.Pipelines/src/System/IO/Pipelines/StreamPipeWriter.cs @@ -3,6 +3,7 @@ using System.Buffers; using System.Diagnostics; +using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; @@ -288,6 +289,9 @@ private void Cancel() InternalTokenSource.Cancel(); } +#if NETCOREAPP + [AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder<>))] +#endif private async ValueTask FlushAsyncInternal(bool writeToStream, ReadOnlyMemory data, CancellationToken cancellationToken = default) { // Write all completed segments and whatever remains in the current segment