def delay(self):
invocation = time.monotonic()<EOL>interval = invocation - self._last_invocation<EOL>self._last_invocation = invocation<EOL>if interval > self._reset_time:<EOL><INDENT>self._exp = <NUM_LIT:0><EOL><DEDENT>self._exp = min(self._exp + <NUM_LIT:1>, self._max)<EOL>return self._randfunc(<NUM_LIT:0>, self._base * <NUM_LIT:2> ** self._exp)<EOL>
Compute the next delay

        Returns the next delay to wait according to the exponential
        backoff algorithm.  This is a value between 0 and base * 2^exp
        where exponent starts off at 1 and is incremented at every
        invocation of this method up to a maximum of 10.

        If a period of more than base * 2^11 has passed since the last
        retry, the exponent is reset to 1.