mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-09-27 06:42:59 +02:00
38 lines
1.5 KiB
Diff
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() {
|