Improve Timings stack protection more

Ensures in more places that exceptions will not corrupt the Timings stack.

Timings will now better report stack corruption and auto repair itself too.
This commit is contained in:
Aikar
2019-03-26 00:31:34 -04:00
parent 9329e1383d
commit 92059ef6ba
3 changed files with 35 additions and 15 deletions

View File

@@ -1653,7 +1653,7 @@ index 646128f16..d75cc42e1 100644
private boolean isReady(final int currentTick) {
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
index 3f55381c1..f32e66010 100644
index 3f55381c1..17ba052f8 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java
@@ -0,0 +0,0 @@ package org.bukkit.craftbukkit.scheduler;
@@ -1705,13 +1705,13 @@ index 3f55381c1..f32e66010 100644
@Override
public void run() {
+ if (timings != null && isSync()) timings.startTiming(); // Paper
+ try (Timing ignored = timings.startTiming()) { // Paper
if (rTask != null) {
rTask.run();
} else {
cTask.accept(this);
}
+ if (timings != null && isSync()) timings.stopTiming(); // Paper
+ } // Paper
}
long getPeriod() {