'Mark the passage of time and decay the current rate accordingly.'

def tick(self):

    prev = self.last_tick
    now = self.clock.time()
    interval = (now - prev)
    if (interval <= 0):
        return
    instant_rate = (self.uncounted / interval)
    self.uncounted = 0.0
    if (self.rate >= 0):
        self.rate += (self._alpha(interval) * (instant_rate - self.rate))
    else:
        self.rate = instant_rate
    self.last_tick = now
