code: def _run(self):
          
  
          def get_next_interval():
              start_time = time.time()
              start = 0 if self.eager else 1
              for count in itertools.count(start=start):
                  yield max(start_time + count * self.interval - time.time(), 0)
          interval = get_next_interval()
          sleep_time = next(interval)
          while True:
              # sleep for `sleep_time`, unless `should_stop` fires, in which
              # case we leave the while loop and stop entirely
              with Timeout(sleep_time, exception=False):
                  self.should_stop.wait()
                  break
  
              self.handle_timer_tick()
  
              self.worker_complete.wait()
              self.worker_complete.reset()
  
              sleep_time = next(interval)
docs: Runs the interval loop.