From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Helvetica Volubi Date: Tue, 28 Jul 2026 15:08:42 +0800 Subject: [PATCH] Anonymous Object: Fix wrong ticket update determination in RegionizedTaskQueue As requested by the original author, this patch will be anonymous and hide the original commit address. This patch is used with permission from the original author. Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/io/papermc/paper/threadedregions/RegionizedTaskQueue.java b/io/papermc/paper/threadedregions/RegionizedTaskQueue.java index b264dbd13a392cde3f24ff75c0034985fda68ccc..fe0a6bd90cba4869a0ee11723832f2dee5039f62 100644 --- a/io/papermc/paper/threadedregions/RegionizedTaskQueue.java +++ b/io/papermc/paper/threadedregions/RegionizedTaskQueue.java @@ -289,14 +289,17 @@ public final class RegionizedTaskQueue { boolean executeTickTasks = allowedTickTasks > 0; boolean executeChunkTasks = allowedChunkTasks > 0; boolean executeGlobalTasks = true; + boolean processedChunkTask = false; // Anonymous - Fix wrong ticket update determination in RegionizedTaskQueue do { executeTickTasks = executeTickTasks && allowedTickTasks-- > 0 && tickTaskQueue.executeTask(); executeChunkTasks = executeChunkTasks && allowedChunkTasks-- > 0 && chunkTaskQueue.executeTask(); executeGlobalTasks = executeGlobalTasks && this.worldRegionTaskData.executeGlobalChunkTask(); + + processedChunkTask |= (executeChunkTasks | executeGlobalTasks); // Anonymous - Fix wrong ticket update determination in RegionizedTaskQueue } while (executeTickTasks | executeChunkTasks | executeGlobalTasks); - if (allowedChunkTasks > 0) { + if (processedChunkTask) { // Anonymous - Fix wrong ticket update determination in RegionizedTaskQueue // if we executed chunk tasks, we should try to process ticket updates for full status changes this.worldRegionTaskData.world.moonrise$getChunkTaskScheduler().chunkHolderManager.processTicketUpdates(); }