docs: void fireEvent() {
          boolean useLock = !isReentrant();
          if (useLock) {
              lock.lock();
          }
          EventImpl event = eventQueue.poll();
  
          try {
              if (event != null) {
                  fireEvent(event);
              }
          } finally {
              if (useLock) {
                  lock.unlock();
              }
          }
  
      }