3
0
Mirror von https://github.com/IntellectualSites/FastAsyncWorldEdit.git synchronisiert 2024-12-26 02:50:06 +01:00

Actually implement ChunkHolder/ChunkSet pools (#1840)

Dieser Commit ist enthalten in:
Jordan 2022-06-24 10:13:58 +01:00 committet von GitHub
Ursprung 800988aae7
Commit 8094b68967
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 4AEE18F83AFDEB23

Datei anzeigen

@ -67,7 +67,13 @@ public class ChunkHolder<T extends Future<T>> implements IQueueChunk<T> {
@Override @Override
public synchronized void recycle() { public synchronized void recycle() {
delegate = NULL; delegate = NULL;
chunkSet = null; if (chunkSet != null) {
chunkSet.recycle();
chunkSet = null;
}
chunkExisting = null;
extent = null;
POOL.offer(this);
} }
public synchronized IBlockDelegate getDelegate() { public synchronized IBlockDelegate getDelegate() {
@ -1039,7 +1045,9 @@ public class ChunkHolder<T extends Future<T>> implements IQueueChunk<T> {
chunkSet.setBitMask(bitMask); chunkSet.setBitMask(bitMask);
try { try {
return this.call(chunkSet, () -> { return this.call(chunkSet, () -> {
recycle(); this.delegate = NULL;
chunkSet.recycle();
chunkSet = null;
calledLock.unlock(stamp); calledLock.unlock(stamp);
}); });
} catch (Throwable t) { } catch (Throwable t) {