doing await right by calling .ConfigureAwait(false)

This commit is contained in:
Brendan Forster
2013-10-31 12:06:46 +11:00
parent c22a9c874f
commit 43e82e124f
11 changed files with 28 additions and 28 deletions

View File

@@ -24,7 +24,7 @@ namespace Octokit.Internal
{ {
Ensure.ArgumentNotNull(request, "request"); Ensure.ArgumentNotNull(request, "request");
var credentials = await CredentialStore.GetCredentials() ?? Credentials.Anonymous; var credentials = await CredentialStore.GetCredentials().ConfigureAwait(false) ?? Credentials.Anonymous;
authenticators[credentials.AuthenticationType].Authenticate(request, credentials); authenticators[credentials.AuthenticationType].Authenticate(request, credentials);
} }

View File

@@ -19,9 +19,9 @@ namespace Octokit
{ {
Ensure.ArgumentNotNull(getFirstPage, "getFirstPage"); Ensure.ArgumentNotNull(getFirstPage, "getFirstPage");
var page = await getFirstPage(); var page = await getFirstPage().ConfigureAwait(false);
var allItems = new List<T>(page); var allItems = new List<T>(page);
while ((page = await page.GetNextPage()) != null) while ((page = await page.GetNextPage().ConfigureAwait(false)) != null)
{ {
allItems.AddRange(page); allItems.AddRange(page);
} }

View File

@@ -39,7 +39,7 @@ namespace Octokit
try try
{ {
var response = await Connection.GetAsync<object>(ApiUrls.CheckAssignee(owner, name, assignee), null, null); var response = await Connection.GetAsync<object>(ApiUrls.CheckAssignee(owner, name, assignee), null, null).ConfigureAwait(false);
if (response.StatusCode != HttpStatusCode.NotFound && response.StatusCode != HttpStatusCode.NoContent) if (response.StatusCode != HttpStatusCode.NotFound && response.StatusCode != HttpStatusCode.NoContent)
{ {
throw new ApiException("Invalid Status Code returned. Expected a 204 or a 404", response.StatusCode); throw new ApiException("Invalid Status Code returned. Expected a 204 or a 404", response.StatusCode);

View File

@@ -37,7 +37,7 @@ namespace Octokit
public async Task<IReadOnlyDictionary<string, Uri>> GetEmojis() public async Task<IReadOnlyDictionary<string, Uri>> GetEmojis()
{ {
var endpoint = new Uri("emojis", UriKind.Relative); var endpoint = new Uri("emojis", UriKind.Relative);
var response = await _connection.GetAsync<Dictionary<string, string>>(endpoint, null, null); var response = await _connection.GetAsync<Dictionary<string, string>>(endpoint, null, null).ConfigureAwait(false);
return new ReadOnlyDictionary<string, Uri>( return new ReadOnlyDictionary<string, Uri>(
response.BodyAsObject.ToDictionary(kvp => kvp.Key, kvp => new Uri(kvp.Value))); response.BodyAsObject.ToDictionary(kvp => kvp.Key, kvp => new Uri(kvp.Value)));
} }
@@ -51,7 +51,7 @@ namespace Octokit
public async Task<string> RenderRawMarkdown(string markdown) public async Task<string> RenderRawMarkdown(string markdown)
{ {
var endpoint = new Uri("markdown/raw", UriKind.Relative); var endpoint = new Uri("markdown/raw", UriKind.Relative);
var response = await _connection.PostAsync<string>(endpoint, markdown, "text/html", "text/plain"); var response = await _connection.PostAsync<string>(endpoint, markdown, "text/html", "text/plain").ConfigureAwait(false);
return response.Body; return response.Body;
} }
} }

View File

@@ -162,7 +162,7 @@ namespace Octokit
Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNullOrEmptyString(name, "name");
var endpoint = "repos/{0}/{1}/readme".FormatUri(owner, name); var endpoint = "repos/{0}/{1}/readme".FormatUri(owner, name);
var readmeInfo = await ApiConnection.Get<ReadmeResponse>(endpoint, null); var readmeInfo = await ApiConnection.Get<ReadmeResponse>(endpoint, null).ConfigureAwait(false);
return new Readme(readmeInfo, ApiConnection); return new Readme(readmeInfo, ApiConnection);
} }

View File

@@ -38,25 +38,25 @@ namespace Octokit
TwoFactorRequiredException twoFactorException = null; TwoFactorRequiredException twoFactorException = null;
try try
{ {
return await authorizationsClient.GetOrCreateApplicationAuthentication(clientId, clientSecret, newAuthorization); return await authorizationsClient.GetOrCreateApplicationAuthentication(clientId, clientSecret, newAuthorization).ConfigureAwait(false);
} }
catch (TwoFactorRequiredException exception) catch (TwoFactorRequiredException exception)
{ {
twoFactorException = exception; twoFactorException = exception;
} }
var twoFactorChallengeResult = await twoFactorChallengeHandler(twoFactorException); var twoFactorChallengeResult = await twoFactorChallengeHandler(twoFactorException).ConfigureAwait(false);
return await (twoFactorChallengeResult.ResendCodeRequested return await (twoFactorChallengeResult.ResendCodeRequested
? authorizationsClient.GetOrCreateApplicationAuthentication( ? authorizationsClient.GetOrCreateApplicationAuthentication(
clientId, clientId,
clientSecret, clientSecret,
newAuthorization, newAuthorization,
twoFactorChallengeHandler) twoFactorChallengeHandler).ConfigureAwait(false)
: authorizationsClient.GetOrCreateApplicationAuthentication( : authorizationsClient.GetOrCreateApplicationAuthentication(
clientId, clientId,
clientSecret, clientSecret,
newAuthorization, newAuthorization,
twoFactorChallengeResult.AuthenticationCode)); twoFactorChallengeResult.AuthenticationCode).ConfigureAwait(false));
} }
} }
} }

View File

@@ -52,7 +52,7 @@ namespace Octokit
{ {
Ensure.ArgumentNotNull(uri, "uri"); Ensure.ArgumentNotNull(uri, "uri");
var response = await Connection.GetAsync<T>(uri, parameters, null); var response = await Connection.GetAsync<T>(uri, parameters, null).ConfigureAwait(false);
return response.BodyAsObject; return response.BodyAsObject;
} }
@@ -67,7 +67,7 @@ namespace Octokit
{ {
Ensure.ArgumentNotNull(uri, "uri"); Ensure.ArgumentNotNull(uri, "uri");
var response = await Connection.GetHtml(uri, parameters); var response = await Connection.GetHtml(uri, parameters).ConfigureAwait(false);
return response.Body; return response.Body;
} }
@@ -109,7 +109,7 @@ namespace Octokit
{ {
Ensure.ArgumentNotNull(uri, "uri"); Ensure.ArgumentNotNull(uri, "uri");
return _pagination.GetAllPages(async () => await GetPage<T>(uri, parameters, accepts)); return _pagination.GetAllPages(async () => await GetPage<T>(uri, parameters, accepts).ConfigureAwait(false));
} }
/// <summary> /// <summary>
@@ -161,7 +161,7 @@ namespace Octokit
uri, uri,
data, data,
accepts, accepts,
contentType); contentType).ConfigureAwait(false);
return response.BodyAsObject; return response.BodyAsObject;
} }
@@ -178,7 +178,7 @@ namespace Octokit
Ensure.ArgumentNotNull(uri, "uri"); Ensure.ArgumentNotNull(uri, "uri");
Ensure.ArgumentNotNull(data, "data"); Ensure.ArgumentNotNull(data, "data");
var response = await Connection.PutAsync<T>(uri, data); var response = await Connection.PutAsync<T>(uri, data).ConfigureAwait(false);
return response.BodyAsObject; return response.BodyAsObject;
} }
@@ -198,7 +198,7 @@ namespace Octokit
Ensure.ArgumentNotNull(data, "data"); Ensure.ArgumentNotNull(data, "data");
Ensure.ArgumentNotNullOrEmptyString(twoFactorAuthenticationCode, "twoFactorAuthenticationCode"); Ensure.ArgumentNotNullOrEmptyString(twoFactorAuthenticationCode, "twoFactorAuthenticationCode");
var response = await Connection.PutAsync<T>(uri, data, twoFactorAuthenticationCode); var response = await Connection.PutAsync<T>(uri, data, twoFactorAuthenticationCode).ConfigureAwait(false);
return response.BodyAsObject; return response.BodyAsObject;
} }
@@ -216,7 +216,7 @@ namespace Octokit
Ensure.ArgumentNotNull(uri, "uri"); Ensure.ArgumentNotNull(uri, "uri");
Ensure.ArgumentNotNull(data, "data"); Ensure.ArgumentNotNull(data, "data");
var response = await Connection.PatchAsync<T>(uri, data); var response = await Connection.PatchAsync<T>(uri, data).ConfigureAwait(false);
return response.BodyAsObject; return response.BodyAsObject;
} }
@@ -240,7 +240,7 @@ namespace Octokit
{ {
Ensure.ArgumentNotNull(uri, "uri"); Ensure.ArgumentNotNull(uri, "uri");
var response = await Connection.GetAsync<List<T>>(uri, parameters, accepts); var response = await Connection.GetAsync<List<T>>(uri, parameters, accepts).ConfigureAwait(false);
return new ReadOnlyPagedCollection<T>( return new ReadOnlyPagedCollection<T>(
response, response,
nextPageUri => Connection.GetAsync<List<T>>(nextPageUri, parameters, accepts)); nextPageUri => Connection.GetAsync<List<T>>(nextPageUri, parameters, accepts));

View File

@@ -260,7 +260,7 @@ namespace Octokit
async Task<IResponse<T>> Run<T>(IRequest request) async Task<IResponse<T>> Run<T>(IRequest request)
{ {
_jsonPipeline.SerializeRequest(request); _jsonPipeline.SerializeRequest(request);
var response = await RunRequest<T>(request); var response = await RunRequest<T>(request).ConfigureAwait(false);
_jsonPipeline.DeserializeResponse(response); _jsonPipeline.DeserializeResponse(response);
return response; return response;
} }
@@ -269,8 +269,8 @@ namespace Octokit
async Task<IResponse<T>> RunRequest<T>(IRequest request) async Task<IResponse<T>> RunRequest<T>(IRequest request)
{ {
request.Headers.Add("User-Agent", UserAgent); request.Headers.Add("User-Agent", UserAgent);
await _authenticator.Apply(request); await _authenticator.Apply(request).ConfigureAwait(false);
var response = await _httpClient.Send<T>(request); var response = await _httpClient.Send<T>(request).ConfigureAwait(false);
ApiInfoParser.ParseApiHttpHeaders(response); ApiInfoParser.ParseApiHttpHeaders(response);
HandleErrors(response); HandleErrors(response);
return response; return response;

View File

@@ -33,8 +33,8 @@ namespace Octokit.Internal
using (var requestMessage = BuildRequestMessage(request)) using (var requestMessage = BuildRequestMessage(request))
{ {
// Make the request // Make the request
var responseMessage = await http.SendAsync(requestMessage, HttpCompletionOption.ResponseContentRead); var responseMessage = await http.SendAsync(requestMessage, HttpCompletionOption.ResponseContentRead).ConfigureAwait(false);
return await BuildResponse<T>(responseMessage); return await BuildResponse<T>(responseMessage).ConfigureAwait(false);
} }
} }
@@ -48,7 +48,7 @@ namespace Octokit.Internal
{ {
if (content != null) if (content != null)
{ {
responseBody = await responseMessage.Content.ReadAsStringAsync(); responseBody = await responseMessage.Content.ReadAsStringAsync().ConfigureAwait(false);
contentType = GetContentType(content); contentType = GetContentType(content);
} }
} }

View File

@@ -25,7 +25,7 @@ namespace Octokit.Internal
var nextPageUrl = _info.GetNextPageUrl(); var nextPageUrl = _info.GetNextPageUrl();
if (nextPageUrl == null) return null; if (nextPageUrl == null) return null;
var response = await _nextPageFunc(nextPageUrl); var response = await _nextPageFunc(nextPageUrl).ConfigureAwait(false);
return new ReadOnlyPagedCollection<T>(response, _nextPageFunc); return new ReadOnlyPagedCollection<T>(response, _nextPageFunc);
} }
} }

View File

@@ -22,7 +22,7 @@ namespace Octokit
var contentAsBytes = Convert.FromBase64String(response.Content); var contentAsBytes = Convert.FromBase64String(response.Content);
Content = Encoding.UTF8.GetString(contentAsBytes, 0, contentAsBytes.Length); Content = Encoding.UTF8.GetString(contentAsBytes, 0, contentAsBytes.Length);
} }
htmlContent = new Lazy<Task<string>>(async () => await client.GetHtml(HtmlUrl)); htmlContent = new Lazy<Task<string>>(async () => await client.GetHtml(HtmlUrl).ConfigureAwait(false));
} }
public string Content { get; private set; } public string Content { get; private set; }