code: def _check_timers(self):
          
          if self._timer_queue:
              timer = self._timer_queue[0]
              if timer['timeout_abs'] < _current_time_millis():
                  # the timer is expired, remove first element in queue
                  self._timer_queue.pop(0)
                  # put into the event queue
                  self._logger.debug('Timer {} expired for stm {}, adding it to event queue.'.format(timer['id'], timer['stm'].id))
                  self._add_event(timer['id'], [], {}, timer['stm'], front=True)
                  # not necessary to set next timeout,
                  # complete check timers will be called again
              else:
                  self._next_timeout = (
                      timer['timeout_abs'] - _current_time_millis()) / 1000
                  if self._next_timeout < 0:
                      self._next_timeout = 0
          else:
              self._next_timeout = None
docs: Check for expired timers.
  
          If there are any timers that expired, place them in the event
          queue.