Browse Source

Instant notification of all waiting readers

Unrud 4 years ago
parent
commit
e0f7fe6526
1 changed files with 2 additions and 2 deletions
  1. 2 2
      radicale/storage/multifilesystem_nolock.py

+ 2 - 2
radicale/storage/multifilesystem_nolock.py

@@ -43,7 +43,6 @@ class RwLock(pathutils.RwLock):
                                     mode == "r" or self._readers == 0))
                                     mode == "r" or self._readers == 0))
             if mode == "r":
             if mode == "r":
                 self._readers += 1
                 self._readers += 1
-                self._cond.notify()
             else:
             else:
                 self._writer = True
                 self._writer = True
         try:
         try:
@@ -53,7 +52,8 @@ class RwLock(pathutils.RwLock):
                 if mode == "r":
                 if mode == "r":
                     self._readers -= 1
                     self._readers -= 1
                 self._writer = False
                 self._writer = False
-                self._cond.notify()
+                if self._readers == 0:
+                    self._cond.notify_all()
 
 
 
 
 class LockDict:
 class LockDict: