3 ms·
Your solution is much cleaner to me, except (not really knowing Python) it looks like it might have a bug, in that the `while True` will never terminate.
by stouset 9y ago
Your solution is much cleaner to me, except (not really knowing Python) it looks like it might have a bug, in that the `while True` will never terminate.
- creatornator 9y agoI think you can break the for loop after the function call and it'll end after the wait is successful. Bit of a hack though
- masklinn 9y ago> the `while True` will never terminate The iterator is infinite on purpose (it has no reason to be finite). You'd terminate it from outside, either when the operation succeeds, so the example loop should more properly be something along the lines of: for _ in backoff(): try: c = connect_to_a_thing() break except ConnectionError: pass # retry or you'd use composition to e.g. stop after a set number of tries: for _ in itertools.islice(backoff(), 5): # do stuff most likely a combination of both.