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.