Fixed deadlock scenario caused by unsubscribing during an event.

This commit is contained in:
Maplewheels
2026-03-21 23:59:19 -04:00
parent b0e3faa2ad
commit 994610869d

View File

@@ -264,7 +264,7 @@ public partial class EventService : IEventService
public void Unsubscribe<T>(T subscriber) where T : class, IEvent
{
Guard.IsNotNull(subscriber, nameof(subscriber));
using var lck = _operationsLock.AcquireWriterLock().ConfigureAwait(false).GetAwaiter().GetResult();
using var lck = _operationsLock.AcquireReaderLock().ConfigureAwait(false).GetAwaiter().GetResult();
IService.CheckDisposed(this);
if (!_subscribers.TryGetValue(typeof(T), out var evtSubscribers))