code: @Override
      public synchronized void run() {
          try {
              notifier.beforePollingCycle(new BeforePollingCycleEvent(dp));
              if (!executor.isShutdown()) {
                  executor.invokeAll(pollers);
              }
              notifier.afterPollingCycle(new AfterPollingCycleEvent(dp));
          } catch (InterruptedException e) {
              // allow thread to exit gracefully
          } catch (Throwable t) {
              LOG.error("Unexpected error!", t);
          }
      }
docs: This method is periodically called by the {@link ExecutorService}.