From df2ed1e584d19e32523d723d7e7340822929c2d7 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Wed, 29 Oct 2025 09:00:23 +0000 Subject: [PATCH] fix RarStream --- src/SharpCompress/Compressors/Rar/RarStream.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/SharpCompress/Compressors/Rar/RarStream.cs b/src/SharpCompress/Compressors/Rar/RarStream.cs index 089489d4..6bdb3154 100644 --- a/src/SharpCompress/Compressors/Rar/RarStream.cs +++ b/src/SharpCompress/Compressors/Rar/RarStream.cs @@ -149,6 +149,14 @@ internal class RarStream : Stream, IStreamStack int offset, int count, System.Threading.CancellationToken cancellationToken + ) => + await ReadImplAsync(buffer, offset, count, cancellationToken).ConfigureAwait(false); + + private async System.Threading.Tasks.Task ReadImplAsync( + byte[] buffer, + int offset, + int count, + System.Threading.CancellationToken cancellationToken ) { outTotal = 0; @@ -183,7 +191,7 @@ internal class RarStream : Stream, IStreamStack } #if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER - public override System.Threading.Tasks.ValueTask ReadAsync( + public override async System.Threading.Tasks.ValueTask ReadAsync( Memory buffer, System.Threading.CancellationToken cancellationToken = default ) @@ -192,9 +200,9 @@ internal class RarStream : Stream, IStreamStack var array = System.Buffers.ArrayPool.Shared.Rent(buffer.Length); try { - var bytesRead = Read(array, 0, buffer.Length); + var bytesRead =await ReadImplAsync(array, 0, buffer.Length, cancellationToken).ConfigureAwait(false); new ReadOnlySpan(array, 0, bytesRead).CopyTo(buffer.Span); - return new System.Threading.Tasks.ValueTask(bytesRead); + return bytesRead; } finally {