From 1e35651260f9fab11f983a50ad4bc450dd96df62 Mon Sep 17 00:00:00 2001 From: jonmv Date: Tue, 26 Apr 2022 20:10:52 +0200 Subject: Deprecate more, add another Supplier based constructor --- .../java/com/yahoo/yolean/concurrent/ResourceFactory.java | 2 +- .../java/com/yahoo/yolean/concurrent/ResourcePool.java | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/yolean/src/main/java/com/yahoo/yolean/concurrent/ResourceFactory.java b/yolean/src/main/java/com/yahoo/yolean/concurrent/ResourceFactory.java index 584647198a5..cc9acf69684 100644 --- a/yolean/src/main/java/com/yahoo/yolean/concurrent/ResourceFactory.java +++ b/yolean/src/main/java/com/yahoo/yolean/concurrent/ResourceFactory.java @@ -6,7 +6,7 @@ import java.util.function.Supplier; /** * @author baldersheim */ -// TODO: Deprecate +@Deprecated(forRemoval = true, since = "7") public abstract class ResourceFactory { public abstract T create(); diff --git a/yolean/src/main/java/com/yahoo/yolean/concurrent/ResourcePool.java b/yolean/src/main/java/com/yahoo/yolean/concurrent/ResourcePool.java index 75f8c961349..6b98129f920 100644 --- a/yolean/src/main/java/com/yahoo/yolean/concurrent/ResourcePool.java +++ b/yolean/src/main/java/com/yahoo/yolean/concurrent/ResourcePool.java @@ -4,6 +4,7 @@ package com.yahoo.yolean.concurrent; import java.util.ArrayDeque; import java.util.Deque; import java.util.Iterator; +import java.util.function.Supplier; /** *

This implements a simple stack based resource pool. If you are out of resources new are allocated from the @@ -15,17 +16,23 @@ import java.util.Iterator; public final class ResourcePool implements Iterable { private final Deque pool = new ArrayDeque<>(); - private final ResourceFactory factory; + private final Supplier factory; + /** @deprecated Use {@link ResourcePool( Supplier )} instead */ + @Deprecated(forRemoval = true, since = "7") public ResourcePool(ResourceFactory factory) { + this(factory.asSupplier()); + } + + public ResourcePool(Supplier factory) { this.factory = factory; } - public final T alloc() { - return pool.isEmpty() ? factory.create() : pool.pop(); + public T alloc() { + return pool.isEmpty() ? factory.get() : pool.pop(); } - public final void free(T e) { + public void free(T e) { pool.push(e); } -- cgit v1.2.3