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");
var credentials = await CredentialStore.GetCredentials() ?? Credentials.Anonymous;
var credentials = await CredentialStore.GetCredentials().ConfigureAwait(false) ?? Credentials.Anonymous;
authenticators[credentials.AuthenticationType].Authenticate(request, credentials);
}

View File

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

View File

@@ -39,7 +39,7 @@ namespace Octokit
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)
{
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()
{
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>(
response.BodyAsObject.ToDictionary(kvp => kvp.Key, kvp => new Uri(kvp.Value)));
}
@@ -51,7 +51,7 @@ namespace Octokit
public async Task<string> RenderRawMarkdown(string markdown)
{
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;
}
}

View File

@@ -162,7 +162,7 @@ namespace Octokit
Ensure.ArgumentNotNullOrEmptyString(name, "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);
}

View File

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

View File

@@ -52,7 +52,7 @@ namespace Octokit
{
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;
}
@@ -67,7 +67,7 @@ namespace Octokit
{
Ensure.ArgumentNotNull(uri, "uri");
var response = await Connection.GetHtml(uri, parameters);
var response = await Connection.GetHtml(uri, parameters).ConfigureAwait(false);
return response.Body;
}
@@ -109,7 +109,7 @@ namespace Octokit
{
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>
@@ -161,7 +161,7 @@ namespace Octokit
uri,
data,
accepts,
contentType);
contentType).ConfigureAwait(false);
return response.BodyAsObject;
}
@@ -178,7 +178,7 @@ namespace Octokit
Ensure.ArgumentNotNull(uri, "uri");
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;
}
@@ -198,7 +198,7 @@ namespace Octokit
Ensure.ArgumentNotNull(data, "data");
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;
}
@@ -216,7 +216,7 @@ namespace Octokit
Ensure.ArgumentNotNull(uri, "uri");
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;
}
@@ -240,7 +240,7 @@ namespace Octokit
{
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>(
response,
nextPageUri => Connection.GetAsync<List<T>>(nextPageUri, parameters, accepts));

View File

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

View File

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

View File

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

View File

@@ -22,7 +22,7 @@ namespace Octokit
var contentAsBytes = Convert.FromBase64String(response.Content);
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; }