def METHOD_NAME(self, now: float) -> None:
    """Calculate how long to wait for a new connection attempt"""
    if self.delay == 0.0:
        self.give_up_at = now + self.reconnect_timeout
        self.delay = BasePool._jitter(
            self.INITIAL_DELAY, -self.DELAY_JITTER, self.DELAY_JITTER
        )
    else:
        self.delay *= self.DELAY_BACKOFF
    if self.delay + now > self.give_up_at:
        self.delay = max(0.0, self.give_up_at - now)