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 f5e7717214
commit e055103d3d
3 changed files with 40 additions and 20 deletions

View File

@@ -1,4 +1,4 @@
From c4854e60305b3205de80651deb632f7a99dcd8ac Mon Sep 17 00:00:00 2001
From f2743e61a346316b3627c75f8d6beb3c30a8cd75 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 3 Mar 2016 04:00:11 -0600
Subject: [PATCH] Timings v2
@@ -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
@@ -2,8 +2,8 @@ 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() {