X-Git-Url: http://git.kaliko.me/?p=python-musicpd.git;a=blobdiff_plain;f=mpd.py;h=5e50295df30acb0523d84f5fedd5dfe77048310e;hp=c38204e7a111e99167f22cfdb1c637b833706a73;hb=a8b38c7c44c731525fdf02c4bf8cec5acfe86031;hpb=6ab362fa29a1d5605f1540b83f13f47741272f32 diff --git a/mpd.py b/mpd.py index c38204e..5e50295 100644 --- a/mpd.py +++ b/mpd.py @@ -269,15 +269,19 @@ class MPDClient(object): yield obj def _read_command_list(self): - for retval in self._command_list: - yield retval() - self._command_list = None + try: + for retval in self._command_list: + yield retval() + finally: + self._command_list = None 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 +422,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()