diff --git a/BTCPayServer/HostedServices/BaseAsyncService.cs b/BTCPayServer/HostedServices/BaseAsyncService.cs index 2d53c0874..dd2ad5016 100644 --- a/BTCPayServer/HostedServices/BaseAsyncService.cs +++ b/BTCPayServer/HostedServices/BaseAsyncService.cs @@ -16,18 +16,23 @@ namespace BTCPayServer.HostedServices { public abstract class BaseAsyncService : IHostedService { - protected CancellationTokenSource _Cts; + private CancellationTokenSource _Cts; protected Task[] _Tasks; public Task StartAsync(CancellationToken cancellationToken) { - _Cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); + _Cts = new CancellationTokenSource(); _Tasks = initializeTasks(); return Task.CompletedTask; } internal abstract Task[] initializeTasks(); + protected CancellationToken _SyncToken + { + get { return _Cts.Token; } + } + protected async Task createLoopTask(Func act, [CallerMemberName]string caller = null) { await new SynchronizationContextRemover(); diff --git a/BTCPayServer/HostedServices/CssThemeManager.cs b/BTCPayServer/HostedServices/CssThemeManager.cs index ca845d723..adc9fce67 100644 --- a/BTCPayServer/HostedServices/CssThemeManager.cs +++ b/BTCPayServer/HostedServices/CssThemeManager.cs @@ -68,7 +68,7 @@ namespace BTCPayServer.HostedServices var data = (await _SettingsRepository.GetSettingAsync()) ?? new ThemeSettings(); _CssThemeManager.Update(data); - await _SettingsRepository.WaitSettingsChanged(_Cts.Token); + await _SettingsRepository.WaitSettingsChanged(_SyncToken); } } } diff --git a/BTCPayServer/HostedServices/RatesHostedService.cs b/BTCPayServer/HostedServices/RatesHostedService.cs index 2ea9c2ea2..4fea30c06 100644 --- a/BTCPayServer/HostedServices/RatesHostedService.cs +++ b/BTCPayServer/HostedServices/RatesHostedService.cs @@ -45,7 +45,7 @@ namespace BTCPayServer.HostedServices .Exchanges .Select(c => (c.DisplayName, c.Name)) .ToArray(); - await Task.Delay(TimeSpan.FromHours(5), _Cts.Token); + await Task.Delay(TimeSpan.FromHours(5), _SyncToken); } async Task RefreshCoinAverageSettings() @@ -61,7 +61,7 @@ namespace BTCPayServer.HostedServices { _coinAverageSettings.KeyPair = null; } - await _SettingsRepository.WaitSettingsChanged(_Cts.Token); + await _SettingsRepository.WaitSettingsChanged(_SyncToken); } } }