mirror of
https://github.com/PryPurity/WorldBorder.git
synced 2024-09-26 03:42:36 +02:00
Added check to Trim process to make sure it doesn't drag on for too long per tick; shouldn't normally be possible on Trim process as opposed to Fill process, but I've had a couple of reports indicating it might rarely be an issue
This commit is contained in:
parent
893701637a
commit
47c6b1ed3c
@ -97,6 +97,8 @@ public class WorldTrimTask implements Runnable
|
|||||||
|
|
||||||
// this is set so it only does one iteration at a time, no matter how frequently the timer fires
|
// this is set so it only does one iteration at a time, no matter how frequently the timer fires
|
||||||
readyToGo = false;
|
readyToGo = false;
|
||||||
|
// and this is tracked to keep one iteration from dragging on too long and possibly choking the system if the user specified a really high frequency
|
||||||
|
long loopStartTime = Config.Now();
|
||||||
|
|
||||||
counter = 0;
|
counter = 0;
|
||||||
while (counter <= chunksPerRun)
|
while (counter <= chunksPerRun)
|
||||||
@ -105,10 +107,19 @@ public class WorldTrimTask implements Runnable
|
|||||||
if (paused)
|
if (paused)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
long now = Config.Now();
|
||||||
|
|
||||||
// every 5 seconds or so, give basic progress report to let user know how it's going
|
// every 5 seconds or so, give basic progress report to let user know how it's going
|
||||||
if (Config.Now() > lastReport + 5000)
|
if (now > lastReport + 5000)
|
||||||
reportProgress();
|
reportProgress();
|
||||||
|
|
||||||
|
// if this iteration has been running for 45ms (almost 1 tick) or more, stop to take a breather
|
||||||
|
if (now > loopStartTime + 45)
|
||||||
|
{
|
||||||
|
readyToGo = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (regionChunks.isEmpty())
|
if (regionChunks.isEmpty())
|
||||||
addCornerChunks();
|
addCornerChunks();
|
||||||
else if (currentChunk == 4)
|
else if (currentChunk == 4)
|
||||||
|
Loading…
Reference in New Issue
Block a user