it's concurrentdict time

This commit is contained in:
Stanley Dimant
2024-11-07 01:00:47 +01:00
committed by Loporrit
parent da69f5fdf1
commit 1756239932

View File

@@ -10,15 +10,15 @@ namespace MareSynchronos.Services.Mediator;
public sealed class MareMediator : IHostedService public sealed class MareMediator : IHostedService
{ {
private readonly object _addRemoveLock = new(); private readonly object _addRemoveLock = new();
private readonly Dictionary<object, DateTime> _lastErrorTime = []; private readonly ConcurrentDictionary<object, DateTime> _lastErrorTime = [];
private readonly ILogger<MareMediator> _logger; private readonly ILogger<MareMediator> _logger;
private readonly CancellationTokenSource _loopCts = new(); private readonly CancellationTokenSource _loopCts = new();
private readonly ConcurrentQueue<MessageBase> _messageQueue = new(); private readonly ConcurrentQueue<MessageBase> _messageQueue = new();
private readonly PerformanceCollectorService _performanceCollector; private readonly PerformanceCollectorService _performanceCollector;
private readonly MareConfigService _mareConfigService; private readonly MareConfigService _mareConfigService;
private readonly Dictionary<Type, HashSet<SubscriberAction>> _subscriberDict = []; private readonly ConcurrentDictionary<Type, HashSet<SubscriberAction>> _subscriberDict = [];
private bool _processQueue = false; private bool _processQueue = false;
private readonly Dictionary<Type, MethodInfo?> _genericExecuteMethods = new(); private readonly ConcurrentDictionary<Type, MethodInfo?> _genericExecuteMethods = new();
public MareMediator(ILogger<MareMediator> logger, PerformanceCollectorService performanceCollector, MareConfigService mareConfigService) public MareMediator(ILogger<MareMediator> logger, PerformanceCollectorService performanceCollector, MareConfigService mareConfigService)
{ {
_logger = logger; _logger = logger;