Skip to content

Commit

Permalink
Fix MainThread freeze crash. Caused by executeBlocking.
Browse files Browse the repository at this point in the history
  • Loading branch information
rafaelflromao authored and Dreeam-qwq committed Jun 13, 2023
1 parent db657d9 commit d0ae25d
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions patches/server/0099-Multithreaded-Tracker.patch
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ index 0000000000000000000000000000000000000000..613bd104762755395e86101decaf1cb7
+}
\ No newline at end of file
diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
index 7ce9ebba8ce304d1f3f21d4f15ee5f3560d7700b..d076b1a4429dcadb01bf2e1a5e09d500baef08d0 100644
index 7ce9ebba8ce304d1f3f21d4f15ee5f3560d7700b..d95f88a6ea90ecb0a5b08e74d34ebea765018513 100644
--- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
+++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
@@ -4,6 +4,8 @@ import co.aikar.timings.TimedEventExecutor;
Expand All @@ -217,7 +217,7 @@ index 7ce9ebba8ce304d1f3f21d4f15ee5f3560d7700b..d076b1a4429dcadb01bf2e1a5e09d500
- throw new IllegalStateException(event.getEventName() + " may only be triggered synchronously.");
+ // Mirai start
+ if(MiraiConfig.enableAsyncEntityTracker) {
+ MinecraftServer.getServer().executeBlocking(event::callEvent);
+ MinecraftServer.getServer().scheduleOnMain(event::callEvent);
+ return;
+ } else {
+ throw new IllegalStateException(event.getEventName() + " may only be triggered synchronously.");
Expand Down
4 changes: 2 additions & 2 deletions patches/server/0100-Sync-event-calls-on-async-threads.patch
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ index 8c1d445544bcfc885fb19bc11dfce6643f58d19c..bcaa51420bb998fda92eaeae506ea213
+ }
}
diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
index d076b1a4429dcadb01bf2e1a5e09d500baef08d0..92d494894c3dd43fba888105711771c01f2f27a9 100644
index d95f88a6ea90ecb0a5b08e74d34ebea765018513..28b1504582f7e778671f60acb3a4864376dac1d0 100644
--- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
+++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
@@ -42,7 +42,7 @@ class PaperEventManager {
Expand All @@ -36,6 +36,6 @@ index d076b1a4429dcadb01bf2e1a5e09d500baef08d0..92d494894c3dd43fba888105711771c0
// Mirai start
- if(MiraiConfig.enableAsyncEntityTracker) {
+ if(MiraiConfig.enableAsyncEntityTracker || MiraiConfig.enableSyncEventCallsOnAsyncThreads) {
MinecraftServer.getServer().executeBlocking(event::callEvent);
MinecraftServer.getServer().scheduleOnMain(event::callEvent);
return;
} else {

0 comments on commit d0ae25d

Please sign in to comment.