Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ReadAsync() [3/3]

override async ValueTask< int > System.Net.Http.HttpConnection.RawConnectionStream.ReadAsync ( Memory< byte > buffer,
CancellationToken cancellationToken )
inlinevirtual

Reimplemented from System.Net.Http.HttpBaseStream.

Definition at line 896 of file HttpConnection.cs.

897 {
898 CancellationHelper.ThrowIfCancellationRequested(cancellationToken);
899 HttpConnection connection = _connection;
900 if (connection == null || buffer.Length == 0)
901 {
902 return 0;
903 }
904 ValueTask<int> valueTask = connection.ReadBufferedAsync(buffer);
905 int num;
906 if (valueTask.IsCompletedSuccessfully)
907 {
908 num = valueTask.Result;
909 }
910 else
911 {
912 CancellationTokenRegistration ctr = connection.RegisterCancellation(cancellationToken);
913 try
914 {
915 num = await valueTask.ConfigureAwait(continueOnCapturedContext: false);
916 }
917 catch (Exception ex) when (CancellationHelper.ShouldWrapInOperationCanceledException(ex, cancellationToken))
918 {
919 throw CancellationHelper.CreateOperationCanceledException(ex, cancellationToken);
920 }
921 finally
922 {
923 ctr.Dispose();
924 }
925 }
926 if (num == 0)
927 {
928 CancellationHelper.ThrowIfCancellationRequested(cancellationToken);
929 _connection = null;
930 connection.Dispose();
931 }
932 return num;
933 }
HttpConnection(HttpConnectionPool pool, Socket socket, Stream stream, TransportContext transportContext)

References System.Net.Http.HttpContentStream._connection, System.buffer, System.cancellationToken, System.Net.Http.CancellationHelper.CreateOperationCanceledException(), System.Net.Http.HttpConnection.Dispose(), System.Net.Http.HttpConnection.ReadBufferedAsync(), System.Net.Http.HttpConnection.RegisterCancellation(), System.Net.Http.CancellationHelper.ShouldWrapInOperationCanceledException(), and System.Net.Http.CancellationHelper.ThrowIfCancellationRequested().