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

◆ ReadAsync() [3/3]

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

Reimplemented from System.Net.Http.HttpBaseStream.

Definition at line 439 of file HttpConnection.cs.

440 {
441 CancellationHelper.ThrowIfCancellationRequested(cancellationToken);
442 HttpConnection connection = _connection;
443 if (connection == null || buffer.Length == 0)
444 {
445 return 0;
446 }
447 ValueTask<int> valueTask = connection.ReadAsync(buffer);
448 int num;
449 if (valueTask.IsCompletedSuccessfully)
450 {
451 num = valueTask.Result;
452 }
453 else
454 {
455 CancellationTokenRegistration ctr = connection.RegisterCancellation(cancellationToken);
456 try
457 {
458 num = await valueTask.ConfigureAwait(continueOnCapturedContext: false);
459 }
460 catch (Exception ex) when (CancellationHelper.ShouldWrapInOperationCanceledException(ex, cancellationToken))
461 {
462 throw CancellationHelper.CreateOperationCanceledException(ex, cancellationToken);
463 }
464 finally
465 {
466 ctr.Dispose();
467 }
468 }
469 if (num == 0)
470 {
471 CancellationHelper.ThrowIfCancellationRequested(cancellationToken);
472 _connection = null;
473 connection.Dispose();
474 }
475 return num;
476 }
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.ReadAsync(), System.Net.Http.HttpConnection.RegisterCancellation(), System.Net.Http.CancellationHelper.ShouldWrapInOperationCanceledException(), and System.Net.Http.CancellationHelper.ThrowIfCancellationRequested().