Bläddra i källkod

Merge pull request #561 from ThomasWaldmann/fix-locking

fix locking, partial fix for #502
TW 9 år sedan
förälder
incheckning
c667d330b4
1 ändrade filer med 3 tillägg och 1 borttagningar
  1. 3 1
      borg/locking.py

+ 3 - 1
borg/locking.py

@@ -278,9 +278,11 @@ class UpgradableLock:
             try:
                 if remove is not None:
                     self._roster.modify(remove, REMOVE)
-                    remove = None
                 if len(self._roster.get(SHARED)) == 0:
                     return  # we are the only one and we keep the lock!
+                # restore the roster state as before (undo the roster change):
+                if remove is not None:
+                    self._roster.modify(remove, ADD)
             except:
                 # avoid orphan lock when an exception happens here, e.g. Ctrl-C!
                 self._lock.release()