Created
November 23, 2016 04:09
-
-
Save vemacs/3f2555cacfa5dbb8823a228c37ef122e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
protected final Queue<FutureTask<?>> j = new java.util.concurrent.ConcurrentLinkedQueue<FutureTask<?>>() { | |
// PaperSpigot: Make size() constant-time | |
private AtomicInteger cachedSize = new AtomicInteger(0); | |
@Override | |
public boolean add(FutureTask<?> e) { | |
boolean result = super.add(e); | |
if (result) { | |
cachedSize.incrementAndGet(); | |
} | |
return result; | |
} | |
@Override | |
public FutureTask<?> poll() { | |
FutureTask<?> result = super.poll(); | |
if (result != null) { | |
cachedSize.decrementAndGet(); | |
} | |
return result; | |
} | |
@Override | |
public int size() { | |
return cachedSize.get(); | |
} | |
}; // Spigot, PAIL: Rename |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment