Skip to content

Commit 81a9fb3

Browse files
committed
fix cancellation/timeout
1 parent c8a3c25 commit 81a9fb3

File tree

3 files changed

+7
-7
lines changed

3 files changed

+7
-7
lines changed

Rubberduck.Core/UI/Command/VersionCheckCommand.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Rubberduck.Resources;
66
using Rubberduck.SettingsProvider;
77
using Rubberduck.Settings;
8+
using System.Threading;
89

910
namespace Rubberduck.UI.Command
1011
{
@@ -44,8 +45,10 @@ protected override async void OnExecute(object parameter)
4445
{
4546
var settings = _config.Read().UserSettings.GeneralSettings;
4647
Logger.Info("Executing version check...");
48+
49+
var tokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(5));
4750
await _versionCheck
48-
.GetLatestVersionAsync(settings)
51+
.GetLatestVersionAsync(settings, tokenSource.Token)
4952
.ContinueWith(t =>
5053
{
5154
if (t.IsFaulted)

Rubberduck.Core/VersionCheck/PublicApiClient.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,9 @@ public class PublicApiClient : ApiClientBase
1111
{
1212
private static readonly string PublicTagsEndPoint = "public/tags";
1313

14-
public async Task<IEnumerable<Tag>> GetLatestTagsAsync()
14+
public async Task<IEnumerable<Tag>> GetLatestTagsAsync(CancellationToken token)
1515
{
16-
var tokenSource = new CancellationTokenSource();
17-
tokenSource.CancelAfter(TimeSpan.FromSeconds(5));
18-
19-
return await GetResponse<Tag[]>(PublicTagsEndPoint, tokenSource.Token);
16+
return await GetResponse<Tag[]>(PublicTagsEndPoint, token);
2017
}
2118
}
2219
}

Rubberduck.Core/VersionCheck/VersionCheckService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public async Task<Version> GetLatestVersionAsync(GeneralSettings settings, Cance
3030
{
3131
using (var client = new PublicApiClient())
3232
{
33-
var tags = await client.GetLatestTagsAsync();
33+
var tags = await client.GetLatestTagsAsync(token);
3434
var next = tags.Single(e => e.IsPreRelease).Name;
3535
var main = tags.Single(e => !e.IsPreRelease).Name;
3636

0 commit comments

Comments
 (0)