void fireEvent ( ) { boolean useLock = ! isReentrant ( ) ; if ( useLock ) { lock . lock ( ) ; } EventImpl event = eventQueue . poll ( ) ; try { if ( event != null ) { fireEvent ( event ) ; } } finally { if ( useLock ) { lock . unlock ( ) ; } } }
Deliver this event to the next target handler pulled from the handlerQueue . If the handler is not reentrant the delivery will be serialized to prevent multiple threads entering the handler concurrently .