• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ThreeMammals / Ocelot / 26761608736

01 Jun 2026 02:34PM UTC coverage: 0.0% (-95.4%) from 95.403%
26761608736

Pull #2394

github

web-flow
Merge e39fc0db2 into e4022a7d8
Pull Request #2394: Harden `FileConfigurationPoller` against timer reentrancy and callback thread leaks, and stabilize `TimeoutDelegatingHandler` timeout test

0 of 7112 relevant lines covered (0.0%)

0.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
src/Ocelot/Configuration/Repository/ServiceDiscoveryFileConfigurationPollerOptions.cs
1
using Ocelot.Configuration.File;
2

3
namespace Ocelot.Configuration.Repository;
4

5
public class ServiceDiscoveryFileConfigurationPollerOptions : IFileConfigurationPollerOptions
6
{
7
    private readonly IInternalConfigurationRepository _internalRepository;
8
    private readonly IFileConfigurationRepository _fileRepository;
9

10
    public ServiceDiscoveryFileConfigurationPollerOptions(IInternalConfigurationRepository internalRepo, IFileConfigurationRepository fileRepo)
×
11
    {
×
12
        _internalRepository = internalRepo;
×
13
        _fileRepository = fileRepo;
×
14
    }
×
15

16
    public const int DefaultDelayMilliseconds = 1000;
17
    public static int DelayMilliseconds { get; set; } = DefaultDelayMilliseconds;
18

19
    public int Delay()
20
    {
×
21
        var configuration = _fileRepository.Get();
×
22
        return GetDelay(configuration);
×
23
    }
×
24

25
    public async Task<int> DelayAsync(CancellationToken cancellationToken = default)
26
    {
×
27
        var configuration = await _fileRepository.GetAsync(cancellationToken);
×
28
        return GetDelay(configuration);
×
29
    }
×
30

31
    protected virtual int GetDelay(FileConfiguration configuration)
32
    {
×
33
        var discoveryOpts = configuration?.GlobalConfiguration?.ServiceDiscoveryProvider;
×
34
        if (discoveryOpts != null && discoveryOpts.PollingInterval > 0)
×
35
            return discoveryOpts.PollingInterval;
×
36

37
        var internalConfig = _internalRepository.Get();
×
38
        var discoveryConfig = internalConfig?.ServiceProviderConfiguration;
×
39
        return (discoveryConfig != null && discoveryConfig.PollingInterval > 0)
×
40
            ? discoveryConfig.PollingInterval
×
41
            : DelayMilliseconds;
×
42
    }
×
43
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc