summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-04-26 20:10:52 +0200
committerjonmv <venstad@gmail.com>2022-04-26 20:10:52 +0200
commit1e35651260f9fab11f983a50ad4bc450dd96df62 (patch)
treecda56c487d9fdbb8e299673cf427824ad4b8de5e
parent4065b27e668814a6ff5f240204cf0ae10123e783 (diff)
Deprecate more, add another Supplier based constructor
-rw-r--r--yolean/src/main/java/com/yahoo/yolean/concurrent/ResourceFactory.java2
-rw-r--r--yolean/src/main/java/com/yahoo/yolean/concurrent/ResourcePool.java15
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<T> {
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;
/**
* <p>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<T> implements Iterable<T> {
private final Deque<T> pool = new ArrayDeque<>();
- private final ResourceFactory<T> factory;
+ private final Supplier<T> factory;
+ /** @deprecated Use {@link ResourcePool( Supplier )} instead */
+ @Deprecated(forRemoval = true, since = "7")
public ResourcePool(ResourceFactory<T> factory) {
+ this(factory.asSupplier());
+ }
+
+ public ResourcePool(Supplier<T> 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);
}