Do not create unneccessary callback in ChunkTaskScheduler#scheduleChunkLoad

If the parameter has addTicket = false and onComplete = null,
then the loadCallback would do no work and as a result does
not need to be created.
This commit is contained in:
Spottedleaf
2024-11-17 12:46:51 -08:00
parent f190cdd8cb
commit d24f6c2874

View File

@@ -579,7 +579,7 @@ public final class ChunkTaskScheduler {
this.chunkHolderManager.processTicketUpdates(); this.chunkHolderManager.processTicketUpdates();
} }
final Consumer<ChunkAccess> loadCallback = (final ChunkAccess chunk) -> { final Consumer<ChunkAccess> loadCallback = onComplete == null && !addTicket ? null : (final ChunkAccess chunk) -> {
try { try {
if (onComplete != null) { if (onComplete != null) {
onComplete.accept(chunk); onComplete.accept(chunk);
@@ -616,9 +616,11 @@ public final class ChunkTaskScheduler {
if (!chunkHolder.upgradeGenTarget(toStatus)) { if (!chunkHolder.upgradeGenTarget(toStatus)) {
this.schedule(chunkX, chunkZ, toStatus, chunkHolder, tasks); this.schedule(chunkX, chunkZ, toStatus, chunkHolder, tasks);
} }
if (loadCallback != null) {
chunkHolder.addStatusConsumer(toStatus, loadCallback); chunkHolder.addStatusConsumer(toStatus, loadCallback);
} }
} }
}
} finally { } finally {
this.schedulingLockArea.unlock(schedulingLock); this.schedulingLockArea.unlock(schedulingLock);
} }
@@ -630,7 +632,7 @@ public final class ChunkTaskScheduler {
tasks.get(i).schedule(); tasks.get(i).schedule();
} }
if (!scheduled) { if (loadCallback != null && !scheduled) {
// couldn't schedule // couldn't schedule
try { try {
loadCallback.accept(chunk); loadCallback.accept(chunk);