Skip to content

Commit 95e0115

Browse files
committed
Update to add configure await false
1 parent 4b64612 commit 95e0115

17 files changed

Lines changed: 70 additions & 63 deletions

File tree

releasenotes/5.2.0.props

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<Project>
2+
<PropertyGroup>
3+
<PackageReleaseNotes>
4+
* Added ConfigureAwait(false) to support legacy asp.net
5+
</PackageReleaseNotes>
6+
</PropertyGroup>
7+
</Project>

src/CondenserDotNet.Client/Leadership/LeaderRegistry.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public async Task<ILeaderWatcher> GetLeaderWatcherAsync(string keyForLeadership)
1818
{
1919
throw new InvalidOperationException($"You need to register your service before you can apply for leadership locks lock attempted {keyForLeadership}");
2020
}
21-
await registrationTask;
21+
await registrationTask.ConfigureAwait(false);
2222
lock (_leaderWatchers)
2323
{
2424
if (!_leaderWatchers.TryGetValue(keyForLeadership, out var returnValue))

src/CondenserDotNet.Client/Leadership/LeaderWatcher.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@ private async Task StartSession()
3434
_currentLeaderEvent.Reset();
3535
_electedLeaderEvent.Reset();
3636
CondenserEventSource.Log.LeadershipSessionCreated();
37-
var result = await _serviceManager.Client.PutAsync(HttpUtils.SessionCreateUrl, GetCreateSession());
37+
var result = await _serviceManager.Client.PutAsync(HttpUtils.SessionCreateUrl, GetCreateSession()).ConfigureAwait(false);
3838
if (!result.IsSuccessStatusCode)
3939
{
4040
await Task.Delay(1000);
4141
continue;
4242
}
43-
_sessionId = JsonConvert.DeserializeObject<SessionCreateResponse>(await result.Content.ReadAsStringAsync()).Id;
44-
await TryForElection();
43+
_sessionId = JsonConvert.DeserializeObject<SessionCreateResponse>(await result.Content.ReadAsStringAsync().ConfigureAwait(false)).Id;
44+
await TryForElection().ConfigureAwait(false);
4545
}
4646
}
4747

@@ -53,14 +53,14 @@ private async Task TryForElection()
5353
_electedLeaderEvent.Reset();
5454
_currentLeaderEvent.Reset();
5555
CondenserEventSource.Log.LeadershipTryToLock(_keyToWatch);
56-
var leaderResult = await _serviceManager.Client.PutAsync($"{KeyPath}{_keyToWatch}?acquire={_sessionId}", GetServiceInformation());
56+
var leaderResult = await _serviceManager.Client.PutAsync($"{KeyPath}{_keyToWatch}?acquire={_sessionId}", GetServiceInformation()).ConfigureAwait(false);
5757
if (!leaderResult.IsSuccessStatusCode)
5858
{
5959
//error so we need to get a new session
60-
await Task.Delay(500);
60+
await Task.Delay(500).ConfigureAwait(false);
6161
return;
6262
}
63-
var areWeLeader = bool.Parse(await leaderResult.Content.ReadAsStringAsync());
63+
var areWeLeader = bool.Parse(await leaderResult.Content.ReadAsStringAsync().ConfigureAwait(false));
6464
if (areWeLeader)
6565
{
6666
_electedLeaderEvent.Set(true);
@@ -69,7 +69,7 @@ private async Task TryForElection()
6969
for (var i = 0; i < 10; i++)
7070
{
7171
CondenserEventSource.Log.LeadershipSessionGetStatus(_keyToWatch);
72-
using (leaderResult = await _serviceManager.Client.GetAsync($"{KeyPath}{_keyToWatch}?index={_consulIndex}"))
72+
using (leaderResult = await _serviceManager.Client.GetAsync($"{KeyPath}{_keyToWatch}?index={_consulIndex}").ConfigureAwait(false))
7373
{
7474
if (!leaderResult.IsSuccessStatusCode)
7575
{
@@ -78,7 +78,7 @@ private async Task TryForElection()
7878
//error so return to create session
7979
return;
8080
}
81-
var kv = JsonConvert.DeserializeObject<KeyValue[]>(await leaderResult.Content.ReadAsStringAsync());
81+
var kv = JsonConvert.DeserializeObject<KeyValue[]>(await leaderResult.Content.ReadAsStringAsync().ConfigureAwait(false));
8282
if (string.IsNullOrWhiteSpace(kv[0].Session))
8383
{
8484
_currentLeaderEvent.Reset();

src/CondenserDotNet.Client/Leadership/LeaderWatcherNew.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@ private async Task<Guid> GetSession()
3838
while (true)
3939
{
4040
CondenserEventSource.Log.LeadershipSessionCreated();
41-
var result = await _serviceManager.Client.PutAsync(HttpUtils.SessionCreateUrl, GetCreateSession());
41+
var result = await _serviceManager.Client.PutAsync(HttpUtils.SessionCreateUrl, GetCreateSession()).ConfigureAwait(false);
4242
if (!result.IsSuccessStatusCode)
4343
{
4444
await Task.Delay(1000);
4545
continue;
4646
}
47-
return JsonConvert.DeserializeObject<SessionCreateResponse>(await result.Content.ReadAsStringAsync()).Id;
47+
return JsonConvert.DeserializeObject<SessionCreateResponse>(await result.Content.ReadAsStringAsync().ConfigureAwait(false)).Id;
4848
}
4949
}
5050

@@ -77,17 +77,17 @@ private StringContent GetServiceInformation() => HttpUtils.GetStringContent(new
7777

7878
private async Task KeepLeadershipLoop()
7979
{
80-
var sessionId = await _sessionIdTask;
80+
var sessionId = await _sessionIdTask.ConfigureAwait(false);
8181
while (true)
8282
{
83-
var leaderResult = await _serviceManager.Client.PutAsync($"{KeyPath}{_keyToWatch}?acquire={sessionId}", GetServiceInformation());
83+
var leaderResult = await _serviceManager.Client.PutAsync($"{KeyPath}{_keyToWatch}?acquire={sessionId}", GetServiceInformation()).ConfigureAwait(false);
8484
if (!leaderResult.IsSuccessStatusCode)
8585
{
8686
//error so we need to get a new session
87-
await Task.Delay(500);
87+
await Task.Delay(500).ConfigureAwait(false);
8888
continue;
8989
}
90-
var areWeLeader = bool.Parse(await leaderResult.Content.ReadAsStringAsync());
90+
var areWeLeader = bool.Parse(await leaderResult.Content.ReadAsStringAsync().ConfigureAwait(false));
9191
if(areWeLeader)
9292
{
9393
_electedLeaderEvent.Set(true);
@@ -96,15 +96,15 @@ private async Task KeepLeadershipLoop()
9696
{
9797
_electedLeaderEvent.Reset();
9898
}
99-
await WaitForLeadershipChange();
99+
await WaitForLeadershipChange().ConfigureAwait(false);
100100
}
101101
}
102102

103103
private async Task WaitForLeadershipChange()
104104
{
105105
while(true)
106106
{
107-
using (var leaderResult = await _serviceManager.Client.GetAsync($"{KeyPath}{_keyToWatch}?index={_consulIndex}"))
107+
using (var leaderResult = await _serviceManager.Client.GetAsync($"{KeyPath}{_keyToWatch}?index={_consulIndex}").ConfigureAwait(false))
108108
{
109109
if (!leaderResult.IsSuccessStatusCode)
110110
{
@@ -115,10 +115,10 @@ private async Task WaitForLeadershipChange()
115115
_currentInfoService.Reset();
116116
return;
117117
}
118-
await Task.Delay(500);
118+
await Task.Delay(500).ConfigureAwait(false);
119119
continue;
120120
}
121-
var kv = JsonConvert.DeserializeObject<KeyValue[]>(await leaderResult.Content.ReadAsStringAsync());
121+
var kv = JsonConvert.DeserializeObject<KeyValue[]>(await leaderResult.Content.ReadAsStringAsync().ConfigureAwait(false));
122122
if (string.IsNullOrWhiteSpace(kv[0].Session))
123123
{
124124
//no one has leadership
@@ -130,7 +130,7 @@ private async Task WaitForLeadershipChange()
130130
_currentInfoService.Set(infoService);
131131
_consulIndex = leaderResult.GetConsulIndex();
132132
_callback?.Invoke(infoService);
133-
if (await _sessionIdTask != new Guid(kv[0].Session))
133+
if (await _sessionIdTask.ConfigureAwait(false) != new Guid(kv[0].Session))
134134
{
135135
_electedLeaderEvent.Reset();
136136
return;
@@ -141,14 +141,14 @@ private async Task WaitForLeadershipChange()
141141

142142
public async Task<InformationService> GetCurrentLeaderAsync()
143143
{
144-
await _sessionIdTask;
145-
return await _currentInfoService.WaitAsync();
144+
await _sessionIdTask.ConfigureAwait(false);
145+
return await _currentInfoService.WaitAsync().ConfigureAwait(false);
146146
}
147147

148148
public async Task GetLeadershipAsync()
149149
{
150-
await _sessionIdTask;
151-
await _electedLeaderEvent.WaitAsync();
150+
await _sessionIdTask.ConfigureAwait(false);
151+
await _electedLeaderEvent.WaitAsync().ConfigureAwait(false);
152152
}
153153

154154
public void SetLeaderCallback(Action<InformationService> callback) => _callback = callback;

src/CondenserDotNet.Client/RegistrationExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public static IServiceManager WithDeregisterIfCriticalAfter(this IServiceManager
5555

5656
public static async Task<bool> DeregisterServiceAsync(this IServiceManager serviceManager)
5757
{
58-
var result = await serviceManager.Client.PutAsync($"/v1/agent/service/deregister/{serviceManager.ServiceId}", new System.Net.Http.StringContent(string.Empty));
58+
var result = await serviceManager.Client.PutAsync($"/v1/agent/service/deregister/{serviceManager.ServiceId}", new System.Net.Http.StringContent(string.Empty)).ConfigureAwait(false);
5959
if(result.IsSuccessStatusCode)
6060
{
6161
serviceManager.RegisteredService = null;
@@ -121,7 +121,7 @@ async Task<bool> RegisterWithConsul()
121121
{
122122
var content = HttpUtils.GetStringContent(s);
123123
CondenserEventSource.Log.ServiceRegistration();
124-
var response = await serviceManager.Client.PutAsync("/v1/agent/service/register", content);
124+
var response = await serviceManager.Client.PutAsync("/v1/agent/service/register", content).ConfigureAwait(false);
125125
if (response.IsSuccessStatusCode)
126126
{
127127
serviceManager.RegisteredService = s;

src/CondenserDotNet.Client/Services/ServiceBasedHttpHandler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ public ServiceBasedHttpHandler(IServiceRegistry serviceRegistry, int maxConnecti
1818
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
1919
{
2020
var currentUri = request.RequestUri;
21-
var serviceInstance = await _serviceRegistry.GetServiceInstanceAsync(currentUri.Host);
21+
var serviceInstance = await _serviceRegistry.GetServiceInstanceAsync(currentUri.Host).ConfigureAwait(false);
2222
if (serviceInstance == null)
2323
{
2424
throw new NoServiceInstanceFoundException(currentUri.Host, null);
2525
}
2626
request.RequestUri = new Uri($"{currentUri.Scheme}://{serviceInstance.Address}:{serviceInstance.Port}{currentUri.PathAndQuery}");
27-
return await base.SendAsync(request, cancellationToken);
27+
return await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
2828
}
2929
}
3030
}

src/CondenserDotNet.Client/Services/ServiceRegistry.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public ServiceRegistry(Func<HttpClient> httpClientFactory = null, ILoggerFactory
2525

2626
public async Task<IEnumerable<string>> GetAvailableServicesAsync()
2727
{
28-
var all = await GetAvailableServicesWithTagsAsync();
28+
var all = await GetAvailableServicesWithTagsAsync().ConfigureAwait(false);
2929
return all.Keys;
3030
}
3131

@@ -37,7 +37,7 @@ public async Task<Dictionary<string, string[]>> GetAvailableServicesWithTagsAsyn
3737
{
3838
return null;
3939
}
40-
var content = await result.Content.ReadAsStringAsync();
40+
var content = await result.Content.ReadAsStringAsync().ConfigureAwait(false);
4141
var serviceList = JsonConvert.DeserializeObject<Dictionary<string, string[]>>(content);
4242
return serviceList;
4343
}

src/CondenserDotNet.Client/Services/ServiceRegistryDelegatingHandler.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ public class ServiceRegistryDelegatingHandler : DelegatingHandler
1616
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
1717
{
1818
var currentUri = request.RequestUri;
19-
if (System.Net.IPAddress.TryParse(currentUri.Host, out _)) return await base.SendAsync(request, cancellationToken);
20-
var serviceInstance = await _serviceRegistry.GetServiceInstanceAsync(currentUri.Host);
19+
if (System.Net.IPAddress.TryParse(currentUri.Host, out _)) return await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
20+
var serviceInstance = await _serviceRegistry.GetServiceInstanceAsync(currentUri.Host).ConfigureAwait(false);
2121
if (serviceInstance == null)
2222
{
2323
throw new NoServiceInstanceFoundException(currentUri.Host, null);
2424
}
2525
request.RequestUri = new Uri($"{currentUri.Scheme}://{serviceInstance.Address}:{serviceInstance.Port}{currentUri.PathAndQuery}");
26-
return await base.SendAsync(request, cancellationToken);
26+
return await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
2727
}
2828
}
2929
}

src/CondenserDotNet.Client/Services/ServiceRegistryNearestDelegatingHandler.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ public class ServiceRegistryNearestDelegatingHandler : DelegatingHandler
1616
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
1717
{
1818
var currentUri = request.RequestUri;
19-
if (System.Net.IPAddress.TryParse(currentUri.Host, out _)) return await base.SendAsync(request, cancellationToken);
20-
var serviceInstance = await _serviceRegistry.GetNearestServiceInstanceAsync(currentUri.Host);
19+
if (System.Net.IPAddress.TryParse(currentUri.Host, out _)) return await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
20+
var serviceInstance = await _serviceRegistry.GetNearestServiceInstanceAsync(currentUri.Host).ConfigureAwait(false);
2121
if (serviceInstance == null)
2222
{
2323
throw new NoServiceInstanceFoundException(currentUri.Host, null);
2424
}
2525
request.RequestUri = new Uri($"{currentUri.Scheme}://{serviceInstance.Address}:{serviceInstance.Port}{currentUri.PathAndQuery}");
26-
return await base.SendAsync(request, cancellationToken);
26+
return await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
2727
}
2828
}
2929
}

src/CondenserDotNet.Client/Services/ServiceWatcher.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,15 @@ private async Task WatcherLoop(HttpClient client)
8989
var consulIndex = "0";
9090
while (!_cancelationToken.Token.IsCancellationRequested)
9191
{
92-
using (var result = await client.GetAsync(_url + consulIndex, _cancelationToken.Token))
92+
using (var result = await client.GetAsync(_url + consulIndex, _cancelationToken.Token).ConfigureAwait(false))
9393
{
9494
if (!result.IsSuccessStatusCode)
9595
{
9696
if (_state == WatcherState.UsingLiveValues)
9797
{
9898
_state = WatcherState.UsingCachedValues;
9999
}
100-
await Task.Delay(1000);
100+
await Task.Delay(1000).ConfigureAwait(false);
101101
continue;
102102
}
103103
var newConsulIndex = result.GetConsulIndex();
@@ -106,7 +106,7 @@ private async Task WatcherLoop(HttpClient client)
106106
continue;
107107
}
108108
consulIndex = newConsulIndex;
109-
var content = await result.Content.ReadAsStringAsync();
109+
var content = await result.Content.ReadAsStringAsync().ConfigureAwait(false);
110110
var instance = JsonConvert.DeserializeObject<List<InformationServiceSet>>(content);
111111
Volatile.Write(ref _instances, instance);
112112
_listCallback?.Invoke(instance);
@@ -126,7 +126,7 @@ private async Task WatcherLoop(HttpClient client)
126126
_logger?.LogInformation("Cancelation requested exiting watcher");
127127
return;
128128
}
129-
await Task.Delay(s_serviceReconnectDelay);
129+
await Task.Delay(s_serviceReconnectDelay).ConfigureAwait(false);
130130
}
131131
}
132132
catch (Exception ex)

0 commit comments

Comments
 (0)