in src/Amazon.Extensions.Configuration.SystemsManager/SystemsManagerConfigurationProvider.cs [63:88]
public SystemsManagerConfigurationProvider(ISystemsManagerConfigurationSource source, ISystemsManagerProcessor systemsManagerProcessor)
{
Source = source ?? throw new ArgumentNullException(nameof(source));
SystemsManagerProcessor = systemsManagerProcessor ?? throw new ArgumentNullException(nameof(systemsManagerProcessor));
if (source.ReloadAfter != null)
{
ChangeToken.OnChange(() =>
{
var cancellationTokenSource = new CancellationTokenSource(source.ReloadAfter.Value);
var cancellationChangeToken = new CancellationChangeToken(cancellationTokenSource.Token);
return cancellationChangeToken;
}, async () =>
{
ReloadTaskEvent.Reset();
try
{
await LoadAsync(true).ConfigureAwait(false);
}
finally
{
ReloadTaskEvent.Set();
}
});
}
}