async def METHOD_NAME(self) -> None:
    """Run the timer."""
    count = 0
    _repeat = self._repeat
    _interval = self._interval
    await self._active.wait()
    start = _time.get_time()
    while _repeat is None or count <= _repeat:
        next_timer = start + ((count + 1) * _interval)
        now = _time.get_time()
        if self._skip and next_timer < now:
            count += 1
            continue
        now = _time.get_time()
        wait_time = max(0, next_timer - now)
        await sleep(wait_time)
        count += 1
        await self._active.wait()
        if self._reset:
            start = _time.get_time()
            count = 0
            self._reset = False
            continue
        try:
            await self._tick(next_timer=next_timer, count=count)
        except EventTargetGone:
            break