def METHOD_NAME(self, *args):
    # called when the backend timer has triggered.
    if not self.running:
        return
    if self.max_iterations >= 0 and self.iter_count >= self.max_iterations:
        self.stop()
        return
    # compute dt since last event
    now = precision_time()
    dt = now - self._last_emit_time
    elapsed = now - self._first_emit_time
    self._last_emit_time = now
    self.events.timeout(
        type='timer_timeout',
        iteration=self.iter_count,
        elapsed=elapsed,
        dt=dt,
        count=self.iter_count)
    self.iter_count += 1