diff --git a/salt/ext/tornado/concurrent.py b/salt/ext/tornado/concurrent.py index bea09ba125..011808ed27 100644 --- a/salt/ext/tornado/concurrent.py +++ b/salt/ext/tornado/concurrent.py @@ -330,12 +330,13 @@ def _check_done(self): def _set_done(self): self._done = True - for cb in self._callbacks: - try: - cb(self) - except Exception: - app_log.exception("Exception in callback %r for %r", cb, self) - self._callbacks = None + if self._callbacks: + for cb in self._callbacks: + try: + cb(self) + except Exception: + app_log.exception("Exception in callback %r for %r", cb, self) + self._callbacks = None # On Python 3.3 or older, objects with a destructor part of a reference # cycle are never destroyed. It's no longer the case on Python 3.4 thanks to