Yatopia/patches/server/0078-fixup-Threaded-WorldGe...

38 lines
1.5 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: ishland <ishlandmc@yeah.net>
Date: Sat, 20 Feb 2021 22:39:16 +0800
Subject: [PATCH] fixup! Threaded WorldGen
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
index 194321b7183d3aaa8031608a979dde71006e2fab..f5690544c1fec4b5e2e4535c2692c809074dca66 100644
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
@@ -841,16 +841,18 @@ public class ChunkProviderServer extends IChunkProvider {
// Yatopia start - reduce scheduling overhead
final ConcurrentLinkedQueue<Runnable> poiQueue = new ConcurrentLinkedQueue<>();
- private boolean runPoiQueueNext() { // TODO flush poi queue?
- try {
- final Runnable runnable = poiQueue.poll();
- if (runnable != null)
+ private boolean runPoiQueueNext() {
+ boolean hasWork = false;
+ Runnable runnable;
+ while ((runnable = poiQueue.poll()) != null) {
+ hasWork = true;
+ try {
runnable.run();
- return runnable != null;
- } catch (Throwable t) {
- t.printStackTrace();
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
}
- return false;
+ return hasWork;
}
public boolean runTasks() {