aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2023-09-23 12:28:02 -0700
committerchrislu <chris.lu@gmail.com>2023-09-23 12:28:02 -0700
commitc43238b30a36ec2a2ac8d2060af5907be6b876c1 (patch)
tree3631a036c27443755fe9a4ca77a47a3622e756ae
parent322af1fc0477c66c748d0e1f2195ad5bee5821a5 (diff)
downloadseaweedfs-c43238b30a36ec2a2ac8d2060af5907be6b876c1.tar.xz
seaweedfs-c43238b30a36ec2a2ac8d2060af5907be6b876c1.zip
fix waiting condition
-rw-r--r--weed/util/lock_table.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/weed/util/lock_table.go b/weed/util/lock_table.go
index b27104a11..fd6e1987a 100644
--- a/weed/util/lock_table.go
+++ b/weed/util/lock_table.go
@@ -65,7 +65,7 @@ func (lt *LockTable[T]) AcquireLock(intention string, key T, lockType LockType)
// If the lock is held exclusively, wait
entry.mu.Lock()
- if len(entry.waiters) > 0 || lockType == ExclusiveLock {
+ if len(entry.waiters) > 0 || lockType == ExclusiveLock || entry.activeExclusiveLockOwnerCount > 0 {
if glog.V(4) {
fmt.Printf("ActiveLock %d %s wait for %+v type=%v with waiters %d active r%d w%d.\n", lock.ID, lock.intention, key, lockType, len(entry.waiters), entry.activeSharedLockOwnerCount, entry.activeExclusiveLockOwnerCount)
if len(entry.waiters) > 0 {