code: protected final Runnable pollScheduledTask(long nanoTime) {
          assert inEventLoop();
  
          Queue<ScheduledFutureTask<?>> scheduledTaskQueue = this.scheduledTaskQueue;
          ScheduledFutureTask<?> scheduledTask = scheduledTaskQueue == null ? null : scheduledTaskQueue.peek();
          if (scheduledTask == null) {
              return null;
          }
  
          if (scheduledTask.deadlineNanos() <= nanoTime) {
              scheduledTaskQueue.remove();
              return scheduledTask;
          }
          return null;
      }
docs: Return the {@link Runnable} which is ready to be executed with the given {@code nanoTime}.
  You should use {@link #nanoTime()} to retrieve the correct {@code nanoTime}.