Timings Improvements

use a better stack for managing timing tree relationships
remove unnecessary synchronization (i forgot HANDLERS is only touched on main)

this should hopefully resolve any data integrity concerns
This commit is contained in:
Aikar
2019-03-24 17:47:23 -04:00
parent 3f35065cd3
commit a76d462eae
3 changed files with 66 additions and 62 deletions

View File

@@ -29,7 +29,7 @@ index 524231ecc..082f2f0c5 100644
<build>
diff --git a/src/main/java/com/destroystokyo/paper/event/executor/MethodHandleEventExecutor.java b/src/main/java/com/destroystokyo/paper/event/executor/MethodHandleEventExecutor.java
new file mode 100644
index 000000000..72318d42d
index 000000000..5b28e9b1d
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/executor/MethodHandleEventExecutor.java
@@ -0,0 +0,0 @@
@@ -39,6 +39,7 @@ index 000000000..72318d42d
+import java.lang.invoke.MethodHandles;
+import java.lang.reflect.Method;
+
+import com.destroystokyo.paper.util.SneakyThrow;
+import org.bukkit.event.Event;
+import org.bukkit.event.EventException;
+import org.bukkit.event.Listener;
@@ -70,7 +71,7 @@ index 000000000..72318d42d
+ try {
+ handle.invoke(listener, event);
+ } catch (Throwable t) {
+ throw new EventException(t);
+ SneakyThrow.sneaky(t);
+ }
+ }
+}