diff --git a/src/main/java/org/dynmap/AsynchronousQueue.java b/src/main/java/org/dynmap/AsynchronousQueue.java index 74be3aa7..6e47aae1 100644 --- a/src/main/java/org/dynmap/AsynchronousQueue.java +++ b/src/main/java/org/dynmap/AsynchronousQueue.java @@ -23,6 +23,7 @@ public class AsynchronousQueue { this.dequeueTime = dequeueTime; this.accelDequeueTime = accelDequeueTime; this.accelDequeueThresh = accelDequeueThresh; + if(pendinglimit < 1) pendinglimit = 1; this.pendinglimit = pendinglimit; } diff --git a/src/main/java/org/dynmap/MapManager.java b/src/main/java/org/dynmap/MapManager.java index 31c2111d..1995f9a7 100644 --- a/src/main/java/org/dynmap/MapManager.java +++ b/src/main/java/org/dynmap/MapManager.java @@ -683,7 +683,8 @@ public class MapManager { }, (int) (configuration.getDouble("renderinterval", 0.5) * 1000), configuration.getInteger("renderacceleratethreshold", 30), - (int)(configuration.getDouble("renderaccelerateinterval", 0.2) * 1000), (Runtime.getRuntime().availableProcessors()+1)/2); + (int)(configuration.getDouble("renderaccelerateinterval", 0.2) * 1000), + configuration.getInteger("tiles-rendered-at-once", (Runtime.getRuntime().availableProcessors()+1)/2)); /* On dedicated thread, so default to no delays */ timeslice_int = (long)(configuration.getDouble("timesliceinterval", 0.0) * 1000); diff --git a/src/main/resources/configuration.txt b/src/main/resources/configuration.txt index d4bb0b8e..7d104a5a 100644 --- a/src/main/resources/configuration.txt +++ b/src/main/resources/configuration.txt @@ -130,6 +130,9 @@ renderacceleratethreshold: 60 # How often to render tiles when backlog is above renderacceleratethreshold renderaccelerateinterval: 0.2 +# How many update tiles to work on at once (if not defined, default is 1/2 the number of cores) +tiles-rendered-at-once: 2 + # Save and restore pending tile renders - prevents their loss on server shutdown or /reload saverestorepending: true