From 36f425b8cdc0c9f759f665abeddfc2881f1f6e05 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sat, 28 Mar 2026 22:07:59 -0400 Subject: [PATCH] Fix excessive recursion from mailbox --- .../modernfix/util/SingleThreadedWorkerService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/embeddedt/modernfix/util/SingleThreadedWorkerService.java b/src/main/java/org/embeddedt/modernfix/util/SingleThreadedWorkerService.java index ebc57823..1682ece6 100644 --- a/src/main/java/org/embeddedt/modernfix/util/SingleThreadedWorkerService.java +++ b/src/main/java/org/embeddedt/modernfix/util/SingleThreadedWorkerService.java @@ -1,5 +1,6 @@ package org.embeddedt.modernfix.util; +import net.minecraft.util.thread.ProcessorMailbox; import org.jetbrains.annotations.NotNull; import java.util.List; @@ -52,9 +53,13 @@ public class SingleThreadedWorkerService extends AbstractExecutorService { return executorService.awaitTermination(timeout, unit); } + private static boolean isForcedAsyncCommand(Runnable command) { + return command instanceof ProcessorMailbox; + } + @Override public void execute(@NotNull Runnable command) { - if (Thread.currentThread() == thread.get()) { + if (!isForcedAsyncCommand(command) && Thread.currentThread() == thread.get()) { command.run(); } else { executorService.execute(command);