in src/main/java/com/uber/cadence/internal/worker/Poller.java [223:262]
public void run() {
try {
if (pollExecutor.isTerminating()) {
return;
}
pollBackoffThrottler.throttle();
if (pollExecutor.isTerminating()) {
return;
}
if (pollRateThrottler != null) {
pollRateThrottler.throttle();
}
CountDownLatch suspender = Poller.this.suspendLatch.get();
if (suspender != null) {
if (log.isDebugEnabled()) {
log.debug("poll task suspending latchCount=" + suspender.getCount());
}
suspender.await();
}
if (pollExecutor.isTerminating()) {
return;
}
task.run();
pollBackoffThrottler.success();
} catch (Throwable e) {
pollBackoffThrottler.failure();
if (!(e.getCause() instanceof InterruptedException)) {
uncaughtExceptionHandler.uncaughtException(Thread.currentThread(), e);
}
} finally {
// Resubmit itself back to pollExecutor
if (!pollExecutor.isTerminating()) {
pollExecutor.execute(this);
} else {
log.debug("poll loop done");
}
}
}