feat[event]: custom event thread

This commit is contained in:
godotg
2024-04-10 17:43:28 +08:00
parent 4c4f44a672
commit c05444229d
2 changed files with 11 additions and 1 deletions
@@ -22,6 +22,9 @@ public enum Bus {
AsyncThread,
VirtualThread;
VirtualThread,
ManualThread
;
}
@@ -56,6 +56,12 @@ public abstract class EventBus {
* event mapping
*/
private static final Map<Class<? extends IEvent>, List<IEventReceiver>> receiverMap = new HashMap<>();
/**
* custom thread event receiver
*/
public static BiConsumer<IEventReceiver, IEvent> manualThreadHandler = EventBus::doReceiver;
/**
* event exception handler
*/
@@ -116,6 +122,7 @@ public abstract class EventBus {
case CurrentThread -> doReceiver(receiver, event);
case AsyncThread -> execute(event.executorHash(), () -> doReceiver(receiver, event));
// case VirtualThread -> Thread.ofVirtual().name("virtual-on" + clazz.getSimpleName()).start(() -> doReceiver(receiver, event));
case ManualThread -> manualThreadHandler.accept(receiver, event);
}
}
}