mercurial/transaction.py
changeset 28960 14e683d6b273
parent 28830 a5009789960c
child 29296 9b41cfe0af31
--- a/mercurial/transaction.py	Sat Apr 16 09:00:15 2016 -0700
+++ b/mercurial/transaction.py	Sat Apr 16 09:02:37 2016 -0700
@@ -431,6 +431,8 @@
             categories = sorted(self._finalizecallback)
             for cat in categories:
                 self._finalizecallback[cat](self)
+            # Prevent double usage and help clear cycles.
+            self._finalizecallback = None
             self._generatefiles(group=GenerationGroup.POSTFINALIZE)
 
         self.count -= 1
@@ -486,6 +488,8 @@
         categories = sorted(self._postclosecallback)
         for cat in categories:
             self._postclosecallback[cat](self)
+        # Prevent double usage and help clear cycles.
+        self._postclosecallback = None
 
     @active
     def abort(self):
@@ -539,6 +543,8 @@
             try:
                 for cat in sorted(self._abortcallback):
                     self._abortcallback[cat](self)
+                # Prevent double usage and help clear cycles.
+                self._abortcallback = None
                 _playback(self.journal, self.report, self.opener, self._vfsmap,
                           self.entries, self._backupentries, False)
                 self.report(_("rollback completed\n"))