in sdk/Common/Communication/RetryableServiceClient.cs [56:80]
private ServiceResponse SendImpl(ServiceRequest request, ExecutionContext context, int retryTimes)
{
long originalContentPosition = -1;
try
{
if (request.Content != null && request.Content.CanSeek)
originalContentPosition = request.Content.Position;
return _innerClient.Send(request, context);
}
catch (Exception ex)
{
if (ShouldRetry(request, ex, retryTimes))
{
if (request.Content != null && (originalContentPosition >= 0 && request.Content.CanSeek))
request.Content.Seek(originalContentPosition, SeekOrigin.Begin);
Pause(retryTimes);
return SendImpl(request, context, ++retryTimes);
}
// Rethrow
throw;
}
}