Revision 5b2e4db4 trunk/Pithos.Network/WebExtensions.cs
b/trunk/Pithos.Network/WebExtensions.cs | ||
---|---|---|
122 | 122 |
{ |
123 | 123 |
try |
124 | 124 |
{ |
125 |
var result = await func(); |
|
125 |
var result = await func().ConfigureAwait(false);
|
|
126 | 126 |
return result; |
127 | 127 |
} |
128 | 128 |
catch (Exception exc) |
... | ... | |
141 | 141 |
HttpStatusCode.RedirectMethod,HttpStatusCode.NotModified,HttpStatusCode.TemporaryRedirect,HttpStatusCode.RedirectKeepVerb}; |
142 | 142 |
while (retries > 0) |
143 | 143 |
{ |
144 |
var result = await func(); |
|
144 |
var result = await func().ConfigureAwait(false);
|
|
145 | 145 |
if (result.IsSuccessStatusCode || acceptedCodes.Contains(result.StatusCode)) |
146 | 146 |
return result; |
147 | 147 |
|
... | ... | |
152 | 152 |
if (result.StatusCode == HttpStatusCode.ServiceUnavailable) |
153 | 153 |
{ |
154 | 154 |
Log.InfoFormat("[UNAVAILABLE] Waiting before retry: {0}",result.ReasonPhrase); |
155 |
await TaskEx.Delay(waitTime); |
|
155 |
await TaskEx.Delay(waitTime).ConfigureAwait(false);
|
|
156 | 156 |
//increase the timeout for repeated timeouts |
157 | 157 |
if (waitTime<TimeSpan.FromSeconds(10)) |
158 | 158 |
waitTime = waitTime.Add(TimeSpan.FromSeconds(10)); |
... | ... | |
173 | 173 |
request.Headers.IfModifiedSince = since.Value; |
174 | 174 |
} |
175 | 175 |
//Func<Task<HttpResponseMessage>> call = () => _baseHttpClient.SendAsync(request); |
176 |
using (var response = await client.SendAsyncWithRetries(request,3)) |
|
176 |
using (var response = await client.SendAsyncWithRetries(request,3).ConfigureAwait(false))
|
|
177 | 177 |
{ |
178 | 178 |
if (response.StatusCode == HttpStatusCode.NoContent) |
179 | 179 |
return String.Empty; |
180 | 180 |
|
181 |
var content = await response.Content.ReadAsStringAsync(); |
|
181 |
var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
|
|
182 | 182 |
return content; |
183 | 183 |
} |
184 | 184 |
|
... | ... | |
219 | 219 |
{ |
220 | 220 |
if (Log.IsDebugEnabled) |
221 | 221 |
Log.DebugFormat("[REQUEST] {0}",message); |
222 |
var result = await client.SendAsync(message,completionOption,cancellationToken); |
|
222 |
HttpResponseMessage result; |
|
223 |
try |
|
224 |
{ |
|
225 |
result = await client.SendAsync(message, completionOption, cancellationToken).ConfigureAwait(false); |
|
226 |
} |
|
227 |
catch (Exception exc) |
|
228 |
{ |
|
229 |
Log.FatalFormat("Unexpected error while sending:\n{0}\n{1}",message,exc); |
|
230 |
throw; |
|
231 |
} |
|
232 |
|
|
223 | 233 |
if (result.IsSuccessStatusCode || acceptedCodes.Contains(result.StatusCode)) |
224 | 234 |
{ |
225 | 235 |
if (Log.IsDebugEnabled) |
... | ... | |
238 | 248 |
{ |
239 | 249 |
|
240 | 250 |
Log.WarnFormat("[UNAVAILABLE] Waiting before retrying [{0}]:[{1}] due to [{2}]",message.Method, message.RequestUri,result.ReasonPhrase); |
241 |
await TaskEx.Delay(waitTime); |
|
251 |
await TaskEx.Delay(waitTime).ConfigureAwait(false);
|
|
242 | 252 |
//increase the timeout for repeated timeouts |
243 | 253 |
if (waitTime<TimeSpan.FromSeconds(10)) |
244 | 254 |
waitTime = waitTime.Add(TimeSpan.FromSeconds(10)); |
Also available in: Unified diff