fix(EventExecutor, ModuleExecutorImpl): replace virtual thread executor with fixed thread pool; Virtual threads do not appear in ThreadDumps, which makes debugging concurrency related issues harder

This commit is contained in:
extio-de
2026-10-04 14:36:04 +02:00
parent 4528649b49
commit 0d900784be
2 changed files with 3 additions and 3 deletions

View File

@@ -3,8 +3,8 @@ package de.extio.game_engine.event;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
import java.util.concurrent.Callable;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
@@ -16,7 +16,7 @@ import org.slf4j.LoggerFactory;
public class EventExecutor { public class EventExecutor {
private static final Logger LOGGER = LoggerFactory.getLogger(EventExecutor.class); private static final Logger LOGGER = LoggerFactory.getLogger(EventExecutor.class);
private static final ExecutorService EXECUTOR = Executors.newVirtualThreadPerTaskExecutor(); private static final ExecutorService EXECUTOR = Executors.newFixedThreadPool(4); //Executors.newVirtualThreadPerTaskExecutor();
private final BlockingQueue<QueuedEvent> eventQueue = new LinkedBlockingQueue<>(); private final BlockingQueue<QueuedEvent> eventQueue = new LinkedBlockingQueue<>();

View File

@@ -14,7 +14,7 @@ import org.slf4j.LoggerFactory;
public class ModuleExecutorImpl implements ModuleExecutor { public class ModuleExecutorImpl implements ModuleExecutor {
private static final Logger LOGGER = LoggerFactory.getLogger(ModuleExecutorImpl.class); private static final Logger LOGGER = LoggerFactory.getLogger(ModuleExecutorImpl.class);
private static final ExecutorService EXECUTOR = Executors.newVirtualThreadPerTaskExecutor(); private static final ExecutorService EXECUTOR = Executors.newFixedThreadPool(4); // Executors.newVirtualThreadPerTaskExecutor();
private final ModuleService moduleManager; private final ModuleService moduleManager;