diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b44171..775a73d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Improve internal array pool sharing (reduces memory consumption and allocation) in .NET >= 5. - Remove dependencies in .NET >= 5. - Replace `System.Buffers` and `System.Runtime.CompilerServices.Unsafe` for `System.Memory` dependency in .NET < 5. +- Remove finalizer in `EventManager`. ## 0.4.1 diff --git a/Enderlook.EventManager/Enderlook.EventManager.csproj b/Enderlook.EventManager/Enderlook.EventManager.csproj index abfc192..60edde1 100644 --- a/Enderlook.EventManager/Enderlook.EventManager.csproj +++ b/Enderlook.EventManager/Enderlook.EventManager.csproj @@ -10,7 +10,7 @@ Enderlook.EventManager https://github.com/Enderlook/Net-Event-Manager git - 0.4.1 + 0.4.2 true true 10 diff --git a/Enderlook.EventManager/src/EventManager.AutoPurger.cs b/Enderlook.EventManager/src/EventManager.AutoPurger.cs index cc5c2d9..31c40d8 100644 --- a/Enderlook.EventManager/src/EventManager.AutoPurger.cs +++ b/Enderlook.EventManager/src/EventManager.AutoPurger.cs @@ -202,7 +202,10 @@ private sealed class AutoPurger if (manager.ConcurrentPurge()) GC.ReRegisterForFinalize(this); else + { + manager.Dispose(); handle.Free(); + } } } } diff --git a/Enderlook.EventManager/src/EventManager.Dispose.cs b/Enderlook.EventManager/src/EventManager.Dispose.cs index dfab82c..7aca556 100644 --- a/Enderlook.EventManager/src/EventManager.Dispose.cs +++ b/Enderlook.EventManager/src/EventManager.Dispose.cs @@ -18,8 +18,6 @@ public void Dispose() return; } - GC.SuppressFinalize(this); - Lock(ref stateLock); { state = IS_DISPOSED_OR_DISPOSING; diff --git a/Enderlook.EventManager/src/EventManager.cs b/Enderlook.EventManager/src/EventManager.cs index 81b8e8a..20ae1e1 100644 --- a/Enderlook.EventManager/src/EventManager.cs +++ b/Enderlook.EventManager/src/EventManager.cs @@ -31,11 +31,6 @@ public sealed partial class EventManager : IDisposable /// public static EventManager Shared { get; } = new EventManager(); - /// - /// Automatically disposes the object in case it wasn't disposed by the user. - /// - ~EventManager() => Dispose(); - /// /// Raises an event type .
/// Execution order of subscribed delegates is undefined.