diff options
-rw-r--r-- | blist/_sortedlist.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/blist/_sortedlist.py b/blist/_sortedlist.py index b34f69e..1f77170 100644 --- a/blist/_sortedlist.py +++ b/blist/_sortedlist.py @@ -420,11 +420,14 @@ class _setmixin(object): def __iter__(self): it = super(_setmixin, self).__iter__() while True: - item = next(it) - n = len(self) - yield item - if n != len(self): - raise RuntimeError('Set changed size during iteration') + try: + item = next(it) + n = len(self) + yield item + if n != len(self): + raise RuntimeError('Set changed size during iteration') + except StopIteration: + return def safe_cmp(f): def g(self, other): |