]> kaliko git repositories - python-musicpd.git/blobdiff - mpd.py
mpd.py: unset iterating flag if an exception is raised
[python-musicpd.git] / mpd.py
diff --git a/mpd.py b/mpd.py
index c38204e7a111e99167f22cfdb1c637b833706a73..380f5b1bd5426ea36c2f040820067e0a79386eb1 100644 (file)
--- a/mpd.py
+++ b/mpd.py
@@ -275,9 +275,11 @@ class MPDClient(object):
         self._fetch_nothing()
 
     def _iterator_wrapper(self, iterator):
-        for item in iterator:
-            yield item
-        self._iterating = False
+        try:
+            for item in iterator:
+                yield item
+        finally:
+            self._iterating = False
 
     def _wrap_iterator(self, iterator):
         if not self.iterate:
@@ -418,6 +420,8 @@ class MPDClient(object):
     def command_list_end(self):
         if self._command_list is None:
             raise CommandListError("Not in command list")
+        if self._iterating:
+            raise IteratingError("Already iterating over a command list")
         self._write_command("command_list_end")
         return self._fetch_command_list()