mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-08-18 04:28:40 +00:00
feat[event]: custom event thread
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user