Skip to content

Commit 4874b1a

Browse files
committed
so modern
1 parent 6248e86 commit 4874b1a

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

src/main/java/cn/ussshenzhou/madparticle/MultiThreadedEqualObjectLinkedOpenHashSetQueue.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.jetbrains.annotations.NotNull;
1010
import org.jspecify.annotations.NonNull;
1111

12+
import java.lang.ref.Cleaner;
1213
import java.lang.reflect.Array;
1314
import java.util.*;
1415
import java.util.concurrent.*;
@@ -25,6 +26,8 @@
2526
*/
2627
public class MultiThreadedEqualObjectLinkedOpenHashSetQueue<E> implements Queue<E> {
2728
private static final AtomicInteger ID = new AtomicInteger();
29+
private static final Cleaner CLEANER = Cleaner.create();
30+
2831
private final ObjectLinkedOpenHashSet<E>[] sets;
2932
private final int maxSize;
3033
private final DefaultEventExecutorGroup threadPool;
@@ -42,6 +45,10 @@ public MultiThreadedEqualObjectLinkedOpenHashSetQueue(int initialCapacityOfEachT
4245
.setNameFormat("MadParticle-MultiThreadedEqualObjectLinkedOpenHashSetQueue-" + ID.get() + "-Thread-%d")
4346
.build()
4447
);
48+
49+
//noinspection UnnecessaryLocalVariable
50+
var pool = this.threadPool;
51+
CLEANER.register(this, pool::shutdownGracefully);
4552
}
4653

4754
public MultiThreadedEqualObjectLinkedOpenHashSetQueue(int maxSize) {

0 commit comments

Comments
 (0)