mercurial/transaction.py
changeset 32558 aa91085cadf3
parent 32291 bd872f64a8ba
child 33056 2312e70cf78b
--- a/mercurial/transaction.py	Fri May 19 13:16:15 2017 -0700
+++ b/mercurial/transaction.py	Fri May 26 13:27:21 2017 -0700
@@ -431,6 +431,7 @@
         '''commit the transaction'''
         if self.count == 1:
             self.validator(self)  # will raise exception if needed
+            self.validator = None # Help prevent cycles.
             self._generatefiles(group=gengroupprefinalize)
             categories = sorted(self._finalizecallback)
             for cat in categories:
@@ -464,6 +465,7 @@
         self._writeundo()
         if self.after:
             self.after()
+            self.after = None # Help prevent cycles.
         if self.opener.isfile(self._backupjournal):
             self.opener.unlink(self._backupjournal)
         if self.opener.isfile(self.journal):
@@ -487,6 +489,7 @@
         self.journal = None
 
         self.releasefn(self, True) # notify success of closing transaction
+        self.releasefn = None # Help prevent cycles.
 
         # run post close action
         categories = sorted(self._postclosecallback)
@@ -557,6 +560,7 @@
         finally:
             self.journal = None
             self.releasefn(self, False) # notify failure of transaction
+            self.releasefn = None # Help prevent cycles.
 
 def rollback(opener, vfsmap, file, report):
     """Rolls back the transaction contained in the given file