76 private final static VarHandle closedHandle; |
76 private final static VarHandle closedHandle; |
77 private final static VarHandle consumersHandle; |
77 private final static VarHandle consumersHandle; |
78 private final static VarHandle dispatcherHandle; |
78 private final static VarHandle dispatcherHandle; |
79 private final static VarHandle flushActionsHandle; |
79 private final static VarHandle flushActionsHandle; |
80 private final static VarHandle closeActionsHandle; |
80 private final static VarHandle closeActionsHandle; |
|
81 private final static VarHandle orderedHandle; |
|
82 private final static VarHandle reuseHandle; |
81 static { |
83 static { |
82 try { |
84 try { |
83 MethodHandles.Lookup l = MethodHandles.lookup(); |
85 MethodHandles.Lookup l = MethodHandles.lookup(); |
84 closedHandle = l.findVarHandle(EventConsumer.class, "closed", boolean.class); |
86 closedHandle = l.findVarHandle(EventConsumer.class, "closed", boolean.class); |
85 consumersHandle = l.findVarHandle(EventConsumer.class, "consumers", EventDispatcher[].class); |
87 consumersHandle = l.findVarHandle(EventConsumer.class, "consumers", EventDispatcher[].class); |
86 dispatcherHandle = l.findVarHandle(EventConsumer.class, "dispatcher", LongMap.class); |
88 dispatcherHandle = l.findVarHandle(EventConsumer.class, "dispatcher", LongMap.class); |
87 flushActionsHandle = l.findVarHandle(EventConsumer.class, "flushActions", Runnable[].class); |
89 flushActionsHandle = l.findVarHandle(EventConsumer.class, "flushActions", Runnable[].class); |
88 closeActionsHandle = l.findVarHandle(EventConsumer.class, "closeActions", Runnable[].class); |
90 closeActionsHandle = l.findVarHandle(EventConsumer.class, "closeActions", Runnable[].class); |
|
91 orderedHandle = l.findVarHandle(EventConsumer.class, "ordered", boolean.class); |
|
92 reuseHandle = l.findVarHandle(EventConsumer.class, "reuse", boolean.class); |
|
93 |
89 } catch (ReflectiveOperationException e) { |
94 } catch (ReflectiveOperationException e) { |
90 throw new InternalError(e); |
95 throw new InternalError(e); |
91 } |
96 } |
92 } |
97 } |
93 // set by VarHandle |
98 // set by VarHandle |
98 private LongMap<EventDispatcher[]> dispatcher = new LongMap<>(); |
103 private LongMap<EventDispatcher[]> dispatcher = new LongMap<>(); |
99 // set by VarHandle |
104 // set by VarHandle |
100 private Runnable[] flushActions = new Runnable[0]; |
105 private Runnable[] flushActions = new Runnable[0]; |
101 // set by VarHandle |
106 // set by VarHandle |
102 private Runnable[] closeActions = new Runnable[0]; |
107 private Runnable[] closeActions = new Runnable[0]; |
|
108 |
|
109 protected boolean ordered = true; |
|
110 |
|
111 protected boolean reuse = true; |
103 |
112 |
104 protected InternalEventFilter eventFilter = InternalEventFilter.ACCEPT_ALL; |
113 protected InternalEventFilter eventFilter = InternalEventFilter.ACCEPT_ALL; |
105 |
114 |
106 private final AccessControlContext accessControlContext; |
115 private final AccessControlContext accessControlContext; |
107 private boolean started; |
116 private boolean started; |