diff -r 77e566fe31ec -r 518c3e392f75 mercurial/lock.py --- a/mercurial/lock.py Sun Mar 27 21:05:55 2016 +0900 +++ b/mercurial/lock.py Sat Apr 16 09:00:15 2016 -0700 @@ -234,6 +234,8 @@ if not self._parentheld: for callback in self.postrelease: callback() + # Prevent double usage and help clear cycles. + self.postrelease = None def release(*locks): for lock in locks: