From 7bc50491cbc2b19e39bd62e4558d7b6d9ec2ac01 Mon Sep 17 00:00:00 2001 From: William Chen Date: Sun, 26 Jan 2025 00:21:31 -0500 Subject: [PATCH] Add IPool interface --- Pooling/IPool.cs | 16 ++++++++++++++++ Pooling/Pool.cs | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 Pooling/IPool.cs diff --git a/Pooling/IPool.cs b/Pooling/IPool.cs new file mode 100644 index 0000000..a2b16e3 --- /dev/null +++ b/Pooling/IPool.cs @@ -0,0 +1,16 @@ +using Exanite.Core.Runtime; + +namespace Exanite.Core.Pooling +{ + public interface IPool : ITrackedDisposable + { + public PoolUsageInfo UsageInfo { get; } + + public Pool.Handle Acquire(out T value); + public T Acquire(); + + public void Release(T element); + + public void Clear(); + } +} diff --git a/Pooling/Pool.cs b/Pooling/Pool.cs index a839999..cc9ab2c 100644 --- a/Pooling/Pool.cs +++ b/Pooling/Pool.cs @@ -16,7 +16,7 @@ public abstract class Pool : ITrackedDisposable /// /// Conventional object pool where objects can be acquired and released. /// - public class Pool : Pool + public class Pool : Pool, IPool { private readonly Queue values;