Skip to content

Commit fd1979b

Browse files
authored
Issue-223 - Remove ConfigureAwait (#273)
- Turns out this is actually only needed in library code
1 parent 2f8160d commit fd1979b

File tree

10 files changed

+46
-46
lines changed

10 files changed

+46
-46
lines changed

src/PwrDrvr.LambdaDispatch.Extension/Function.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,14 @@ private static async Task Main()
6464

6565
_logger.LogDebug("Lambda Extension Registering");
6666
// The Extension API will not return so we cannot await this
67-
await RegisterLambdaExtension().ConfigureAwait(false);
67+
await RegisterLambdaExtension();
6868
_logger.LogDebug("Lambda Extension Registered");
6969

7070
if (!_staticResponse)
7171
{
7272
_logger.LogDebug("Contained App - Skipping Startup, Waiting for Healthy");
7373
// Wait for the health endpoint to return OK
74-
await AwaitChildAppHealthy().ConfigureAwait(false);
74+
await AwaitChildAppHealthy();
7575
_logger.LogInformation("Contained App - Healthy");
7676
}
7777
else
@@ -80,7 +80,7 @@ private static async Task Main()
8080
}
8181
#if !SKIP_METRICS
8282
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
83-
Task.Run(() => MetricsRegistry.PrintMetrics(ctsShutdown.Token)).ConfigureAwait(false);
83+
Task.Run(() => MetricsRegistry.PrintMetrics(ctsShutdown.Token));
8484
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
8585
#endif
8686
Func<WaiterRequest, ILambdaContext, Task<WaiterResponse>> handler = FunctionHandler;
@@ -133,14 +133,14 @@ private static async Task RegisterLambdaExtension()
133133
var execName = Path.GetFileName(Process.GetCurrentProcess().MainModule?.FileName ?? "lambda-dispatch");
134134
_logger.LogInformation("Registering Lambda Extension with name: {}", execName);
135135
registerRequest.Headers.Add("Lambda-Extension-Name", execName);
136-
var registerResponse = await client.SendAsync(registerRequest).ConfigureAwait(false);
136+
var registerResponse = await client.SendAsync(registerRequest);
137137
if (!registerResponse.IsSuccessStatusCode)
138138
{
139139
throw new Exception($"Failed to register extension: {registerResponse.StatusCode}");
140140
}
141141
var extensionId = registerResponse.Headers.GetValues("Lambda-Extension-Identifier").FirstOrDefault();
142142
// Discard the response body
143-
await registerResponse.Content.CopyToAsync(Stream.Null).ConfigureAwait(false);
143+
await registerResponse.Content.CopyToAsync(Stream.Null);
144144
if (string.IsNullOrEmpty(extensionId))
145145
{
146146
throw new Exception($"Failed to get extension id");
@@ -153,7 +153,7 @@ private static async Task RegisterLambdaExtension()
153153
{
154154
var nextEventRequest = new HttpRequestMessage(HttpMethod.Get, nextEventUrl);
155155
nextEventRequest.Headers.Add("Lambda-Extension-Identifier", extensionId);
156-
var nextEventResponse = await client.SendAsync(nextEventRequest).ConfigureAwait(false);
156+
var nextEventResponse = await client.SendAsync(nextEventRequest);
157157
if (!nextEventResponse.IsSuccessStatusCode)
158158
{
159159
throw new Exception($"Failed to get next event: {nextEventResponse.StatusCode}");
@@ -196,7 +196,7 @@ private static async Task AwaitChildAppHealthy()
196196
{
197197
try
198198
{
199-
var response = await client.GetAsync(healthCheckUrl).ConfigureAwait(false);
199+
var response = await client.GetAsync(healthCheckUrl);
200200
if (response.StatusCode == HttpStatusCode.OK)
201201
{
202202
_logger.LogInformation("Contained App - Got OK result");
@@ -209,7 +209,7 @@ private static async Task AwaitChildAppHealthy()
209209
_logger.LogDebug("Contained App - Healthcheck failed");
210210
}
211211

212-
await Task.Delay(250).ConfigureAwait(false); // Wait for a second before polling again
212+
await Task.Delay(250); // Wait for a second before polling again
213213
}
214214
while (true);
215215

@@ -302,7 +302,7 @@ public static async Task<WaiterResponse> FunctionHandler(WaiterRequest request,
302302
_logger.LogDebug("Getting request from Router");
303303

304304
(var outerStatus, var receivedRequest, var requestForResponse, var requestStreamForResponse, var duplexContent)
305-
= await reverseRequester.GetRequest(channelId).ConfigureAwait(false);
305+
= await reverseRequester.GetRequest(channelId);
306306

307307
lastWakeupTime = DateTime.Now;
308308

@@ -361,7 +361,7 @@ public static async Task<WaiterResponse> FunctionHandler(WaiterRequest request,
361361
{
362362
// Return after headers are received
363363
_logger.LogDebug("Sending request to Contained App");
364-
using var response = await appHttpClient.SendAsync(receivedRequest, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false);
364+
using var response = await appHttpClient.SendAsync(receivedRequest, HttpCompletionOption.ResponseHeadersRead);
365365

366366
_logger.LogDebug("Got response from Contained App");
367367

@@ -371,23 +371,23 @@ public static async Task<WaiterResponse> FunctionHandler(WaiterRequest request,
371371
}
372372

373373
// Send the response back
374-
await reverseRequester.SendResponse(response, requestForResponse, requestStreamForResponse, duplexContent, channelId).ConfigureAwait(false);
374+
await reverseRequester.SendResponse(response, requestForResponse, requestStreamForResponse, duplexContent, channelId);
375375
}
376376
else
377377
{
378378
// NOTE: Static response is only for testing
379379
// Read the bytes off the request body, if any
380380
if (receivedRequest.Content != null)
381381
{
382-
await receivedRequest.Content.CopyToAsync(Stream.Null).ConfigureAwait(false);
382+
await receivedRequest.Content.CopyToAsync(Stream.Null);
383383
}
384384

385385
using var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK)
386386
{
387387
Content = new StringContent($"Hello from LambdaLB")
388388
};
389389

390-
await reverseRequester.SendResponse(response, requestForResponse, requestStreamForResponse, duplexContent, channelId).ConfigureAwait(false);
390+
await reverseRequester.SendResponse(response, requestForResponse, requestStreamForResponse, duplexContent, channelId);
391391
}
392392

393393
#if !SKIP_METRICS
@@ -407,7 +407,7 @@ public static async Task<WaiterResponse> FunctionHandler(WaiterRequest request,
407407
{
408408
Content = new StringContent(ex.Message)
409409
};
410-
await reverseRequester.SendResponse(response, requestForResponse, requestStreamForResponse, duplexContent, channelId).ConfigureAwait(false);
410+
await reverseRequester.SendResponse(response, requestForResponse, requestStreamForResponse, duplexContent, channelId);
411411
}
412412
catch (Exception ex2)
413413
{
@@ -517,7 +517,7 @@ public static async Task<WaiterResponse> FunctionHandler(WaiterRequest request,
517517
{
518518
try
519519
{
520-
var completedTask = await Task.WhenAny(tcsShutdown.Task, Task.Delay(TimeSpan.FromSeconds(5), pingCts.Token)).ConfigureAwait(false);
520+
var completedTask = await Task.WhenAny(tcsShutdown.Task, Task.Delay(TimeSpan.FromSeconds(5), pingCts.Token));
521521

522522
if (completedTask == tcsShutdown.Task)
523523
{

src/PwrDrvr.LambdaDispatch.Extension/HttpDuplexContent.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ protected override async Task SerializeToStreamAsync(Stream stream, TransportCon
3232
stream.Flush();
3333
_waitForCompletion = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
3434
_waitForStream.SetResult(stream);
35-
await _waitForCompletion.Task.ConfigureAwait(false);
35+
await _waitForCompletion.Task;
3636
}
3737

3838
public Task<Stream> WaitForStreamAsync()

src/PwrDrvr.LambdaDispatch.Extension/HttpReverseRequester.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,10 @@ public ValueTask DisposeAsync()
147147
// Read the Response before sending the Request
148148
// TODO: We can await the pair of the Response or Request closing to avoid deadlocks
149149
//
150-
var response = await _client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false);
150+
var response = await _client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
151151

152152
// Get the stream that we can write the response to
153-
Stream requestStreamForResponse = await duplexContent.WaitForStreamAsync().ConfigureAwait(false);
153+
Stream requestStreamForResponse = await duplexContent.WaitForStreamAsync();
154154
if (response.StatusCode != HttpStatusCode.OK)
155155
{
156156
_logger.LogWarning("CLOSING - Got a {status} on the outer request LambdaId: {id}, ChannelId: {channelId}", response.StatusCode, _id, channelId);
@@ -173,7 +173,7 @@ public ValueTask DisposeAsync()
173173
var headerBuffer = ArrayPool<byte>.Shared.Rent(32 * 1024);
174174
try
175175
{
176-
var requestStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false);
176+
var requestStream = await response.Content.ReadAsStreamAsync();
177177

178178
// Read up to max headers size of data
179179
// Read until we fill the bufer OR we get an EOF
@@ -189,7 +189,7 @@ public ValueTask DisposeAsync()
189189
break;
190190
}
191191

192-
var bytesRead = await requestStream.ReadAsync(headerBuffer, totalBytesRead, headerBuffer.Length - totalBytesRead).ConfigureAwait(false);
192+
var bytesRead = await requestStream.ReadAsync(headerBuffer, totalBytesRead, headerBuffer.Length - totalBytesRead);
193193
if (bytesRead == 0)
194194
{
195195
// Done reading
@@ -445,12 +445,12 @@ public async Task SendResponse(HttpResponseMessage response, HttpRequestMessage
445445
offset += endOfHeadersBytes.Length;
446446

447447
// Write the headers to the stream
448-
await requestStreamForResponse.WriteAsync(headerBuffer.AsMemory(0, offset)).ConfigureAwait(false);
448+
await requestStreamForResponse.WriteAsync(headerBuffer.AsMemory(0, offset));
449449

450450
// Copy the body from the request to the response
451451
// NOTE: CopyToAsync will only start sending when EOF is read on the response stream
452452
#if false
453-
await response.Content.CopyToAsync(requestStreamForResponse).ConfigureAwait(false);
453+
await response.Content.CopyToAsync(requestStreamForResponse);
454454
#else
455455
var bytes = ArrayPool<byte>.Shared.Rent(128 * 1024);
456456
try
@@ -469,7 +469,7 @@ public async Task SendResponse(HttpResponseMessage response, HttpRequestMessage
469469
ArrayPool<byte>.Shared.Return(bytes);
470470
}
471471
#endif
472-
await requestStreamForResponse.FlushAsync().ConfigureAwait(false);
472+
await requestStreamForResponse.FlushAsync();
473473
requestStreamForResponse.Close();
474474
duplexContent.Complete();
475475
}
@@ -504,7 +504,7 @@ public async Task CloseInstance()
504504
request.Headers.Host = $"lambdadispatch.local:{_uri.Port}";
505505
request.Headers.Add("X-Lambda-Id", _id);
506506

507-
using var response = await _client.SendAsync(request).ConfigureAwait(false);
507+
using var response = await _client.SendAsync(request);
508508

509509
if (response.StatusCode != HttpStatusCode.OK)
510510
{
@@ -539,7 +539,7 @@ public async Task<bool> Ping()
539539
request.Headers.Host = $"lambdadispatch.local:{_uri.Port}";
540540
request.Headers.Add("X-Lambda-Id", _id);
541541

542-
using var response = await _client.SendAsync(request).ConfigureAwait(false);
542+
using var response = await _client.SendAsync(request);
543543

544544
if (response.StatusCode != HttpStatusCode.OK)
545545
{

src/PwrDrvr.LambdaDispatch.Router/Dispatcher.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ public async Task AddRequest(HttpRequest incomingRequest, HttpResponse incomingR
194194
}
195195

196196
// TODO: If we want to cancel we need to pass a token in here
197-
runRequestResult = await lambdaConnection.RunRequest(incomingRequest, incomingResponse, accessLogProps, debugMode).ConfigureAwait(false);
197+
runRequestResult = await lambdaConnection.RunRequest(incomingRequest, incomingResponse, accessLogProps, debugMode);
198198
accessLogProps.StatusCode = incomingResponse.StatusCode;
199199

200200
if (debugMode)
@@ -770,7 +770,7 @@ private bool TryBackgroundDispatchOne(PendingRequest pendingRequest, ILambdaConn
770770
"-"
771771
);
772772
}
773-
}).ConfigureAwait(false);
773+
});
774774

775775
return startedRequest;
776776
}

src/PwrDrvr.LambdaDispatch.Router/LambdaConnection.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ private async Task<long> ProxyRequestToLambda(HttpRequest incomingRequest, Acces
238238
offset += 2;
239239

240240
// Send the headers to the Lambda
241-
await Response.BodyWriter.WriteAsync(headerBuffer.AsMemory(0, offset), CTS.Token).ConfigureAwait(false);
241+
await Response.BodyWriter.WriteAsync(headerBuffer.AsMemory(0, offset), CTS.Token);
242242

243243
if (debugMode)
244244
{
@@ -353,14 +353,14 @@ private async Task<long> ProxyRequestToLambda(HttpRequest incomingRequest, Acces
353353
ArrayPool<byte>.Shared.Return(bytes);
354354
}
355355

356-
await incomingRequest.BodyReader.CompleteAsync().ConfigureAwait(false);
356+
await incomingRequest.BodyReader.CompleteAsync();
357357

358358
_logger.LogDebug("Finished sending incoming request body to Lambda");
359359
}
360360

361361
// Mark that the Request has been sent on the LambdaInstances
362-
await Response.BodyWriter.CompleteAsync().ConfigureAwait(false);
363-
await Response.CompleteAsync().ConfigureAwait(false);
362+
await Response.BodyWriter.CompleteAsync();
363+
await Response.CompleteAsync();
364364

365365
// Get the response from the lambda request and relay it back to the caller
366366
_logger.LogDebug("Finished sending entire request to Lambda");
@@ -444,7 +444,7 @@ public async Task<RunRequestResult> RunRequest(HttpRequest incomingRequest, Http
444444
// Wait for both to finish
445445
// This allows us to continue sending request body while receiving
446446
// and relaying the response body (duplex)
447-
var completedTask = await Task.WhenAny(proxyRequestTask, proxyResponseTask).ConfigureAwait(false);
447+
var completedTask = await Task.WhenAny(proxyRequestTask, proxyResponseTask);
448448
if (completedTask.Exception != null)
449449
{
450450
_logger.LogError(completedTask.Exception, "{Method} {Url} {Protocol} {RemoteIP} {UserAgent} - {} Status - {} Bytes Received - {} Bytes Sent - RUNREQUEST - EXCEPTION",
@@ -464,14 +464,14 @@ public async Task<RunRequestResult> RunRequest(HttpRequest incomingRequest, Http
464464
{
465465
// ProxyRequestToLambda finished first
466466
// Wait for RelayResponseFromLambda to finish
467-
totalBytesWritten = await proxyResponseTask.ConfigureAwait(false);
467+
totalBytesWritten = await proxyResponseTask;
468468
totalBytesRead = completedTask.Result;
469469
}
470470
else
471471
{
472472
// RelayResponseFromLambda finished first
473473
// Wait for ProxyRequestToLambda to finish
474-
totalBytesRead = await proxyRequestTask.ConfigureAwait(false);
474+
totalBytesRead = await proxyRequestTask;
475475
totalBytesWritten = completedTask.Result;
476476
}
477477
}
@@ -555,7 +555,7 @@ public async Task<RunRequestResult> RunRequest(HttpRequest incomingRequest, Http
555555

556556
try
557557
{
558-
await incomingResponse.CompleteAsync().ConfigureAwait(false);
558+
await incomingResponse.CompleteAsync();
559559
}
560560
catch { }
561561

@@ -595,7 +595,7 @@ private async Task<long> RelayResponseFromLambda(HttpResponse incomingResponse,
595595
break;
596596
}
597597

598-
var bytesRead = await Request.Body.ReadAsync(headerBuffer.AsMemory(totalBytesRead, headerBuffer.Length - totalBytesRead), CTS.Token).ConfigureAwait(false);
598+
var bytesRead = await Request.Body.ReadAsync(headerBuffer.AsMemory(totalBytesRead, headerBuffer.Length - totalBytesRead), CTS.Token);
599599
if (bytesRead == 0)
600600
{
601601
// Done reading
@@ -734,7 +734,7 @@ private async Task<long> RelayResponseFromLambda(HttpResponse incomingResponse,
734734
// There are bytes left in the buffer
735735
// Copy them to the response
736736
totalBodyBytesRead += totalBytesRead - startOfNextLine;
737-
await incomingResponse.BodyWriter.WriteAsync(headerBuffer.AsMemory(startOfNextLine, totalBytesRead - startOfNextLine), CTS.Token).ConfigureAwait(false);
737+
await incomingResponse.BodyWriter.WriteAsync(headerBuffer.AsMemory(startOfNextLine, totalBytesRead - startOfNextLine), CTS.Token);
738738
totalBodyBytesWritten += totalBytesRead - startOfNextLine;
739739
}
740740
}
@@ -785,7 +785,7 @@ private async Task<long> RelayResponseFromLambda(HttpResponse incomingResponse,
785785
{
786786
try
787787
{
788-
bytesRead = await responseStream.ReadAsync(bytes, CTS.Token).ConfigureAwait(false);
788+
bytesRead = await responseStream.ReadAsync(bytes, CTS.Token);
789789
}
790790
catch (Exception ex)
791791
{
@@ -809,7 +809,7 @@ private async Task<long> RelayResponseFromLambda(HttpResponse incomingResponse,
809809

810810
try
811811
{
812-
await incomingResponse.Body.WriteAsync(bytes.AsMemory(0, bytesRead), CTS.Token).ConfigureAwait(false);
812+
await incomingResponse.Body.WriteAsync(bytes.AsMemory(0, bytesRead), CTS.Token);
813813
totalBodyBytesWritten += bytesRead;
814814
}
815815
catch (Exception ex)

src/PwrDrvr.LambdaDispatch.Router/LambdaInstanceManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ public async Task<AddConnectionResult> AddConnectionForLambda(HttpRequest reques
204204
{
205205
// Add the connection to the instance
206206
// The instance will eventually get rebalanced in the least outstanding queue
207-
var result = await instance.AddConnection(request, response, channelId, dispatchMode).ConfigureAwait(false);
207+
var result = await instance.AddConnection(request, response, channelId, dispatchMode);
208208

209209
if (result.WasRejected || result.Connection == null)
210210
{

src/PwrDrvr.LambdaDispatch.Router/LeastOutstandingQueue.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ private async Task RebalanceQueue()
392392
// Wait for a short period before checking again
393393
try
394394
{
395-
await Task.Delay(TimeSpan.FromMilliseconds(100), cancellationTokenSource.Token).ConfigureAwait(false);
395+
await Task.Delay(TimeSpan.FromMilliseconds(100), cancellationTokenSource.Token);
396396
}
397397
catch (TaskCanceledException)
398398
{
@@ -443,7 +443,7 @@ private async Task LogQueueSizes()
443443
// Wait a bit
444444
try
445445
{
446-
await Task.Delay(TimeSpan.FromSeconds(10), cancellationTokenSource.Token).ConfigureAwait(false);
446+
await Task.Delay(TimeSpan.FromSeconds(10), cancellationTokenSource.Token);
447447
}
448448
catch (TaskCanceledException)
449449
{

src/PwrDrvr.LambdaDispatch.Router/MetricsRegistry.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,8 @@ public async Task PrintMetrics()
297297
{
298298
while (true)
299299
{
300-
await Task.WhenAll(this.Metrics.ReportRunner.RunAllAsync()).ConfigureAwait(false);
301-
await Task.Delay(TimeSpan.FromSeconds(5)).ConfigureAwait(false);
300+
await Task.WhenAll(this.Metrics.ReportRunner.RunAllAsync());
301+
await Task.Delay(TimeSpan.FromSeconds(5));
302302
}
303303
}
304304
}

src/PwrDrvr.LambdaDispatch.Router/Startup.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public void ConfigureServices(IServiceCollection services)
5454
#if !SKIP_METRICS
5555
if (_config.LogPeriodicMetrics)
5656
{
57-
Task.Run(metricsRegistry.PrintMetrics).ConfigureAwait(false);
57+
Task.Run(metricsRegistry.PrintMetrics);
5858
}
5959
#endif
6060
}

0 commit comments

Comments
 (0)