geforkt von Mirrors/Paper
17b58d00d8
This was a useless exception wrapper that ends up making stack traces harder to read as well as the JVM cutting off the important parts Nothing catches this exception, so its safe to just get rid of it and let the REAL exception bubble down
47 Zeilen
1.2 KiB
Diff
47 Zeilen
1.2 KiB
Diff
From 3fabac75e83331f5b4ac0cefaa42b16441a2956e Mon Sep 17 00:00:00 2001
|
|
From: vemacs <d@nkmem.es>
|
|
Date: Wed, 23 Nov 2016 12:53:43 -0500
|
|
Subject: [PATCH] Misc Utils
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/utils/CachedSizeConcurrentLinkedQueue.java b/src/main/java/com/destroystokyo/paper/utils/CachedSizeConcurrentLinkedQueue.java
|
|
new file mode 100644
|
|
index 00000000..d60ecbb1
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/utils/CachedSizeConcurrentLinkedQueue.java
|
|
@@ -0,0 +1,31 @@
|
|
+package com.destroystokyo.paper.utils;
|
|
+
|
|
+import java.util.concurrent.ConcurrentLinkedQueue;
|
|
+import java.util.concurrent.atomic.LongAdder;
|
|
+
|
|
+public class CachedSizeConcurrentLinkedQueue<E> extends ConcurrentLinkedQueue<E> {
|
|
+ private final LongAdder cachedSize = new LongAdder();
|
|
+
|
|
+ @Override
|
|
+ public boolean add(E e) {
|
|
+ boolean result = super.add(e);
|
|
+ if (result) {
|
|
+ cachedSize.increment();
|
|
+ }
|
|
+ return result;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public E poll() {
|
|
+ E result = super.poll();
|
|
+ if (result != null) {
|
|
+ cachedSize.decrement();
|
|
+ }
|
|
+ return result;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public int size() {
|
|
+ return cachedSize.intValue();
|
|
+ }
|
|
+}
|
|
--
|
|
2.20.1
|
|
|