aboutsummaryrefslogtreecommitdiff
path: root/weed/util/lock_table.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/util/lock_table.go')
-rw-r--r--weed/util/lock_table.go36
1 files changed, 21 insertions, 15 deletions
diff --git a/weed/util/lock_table.go b/weed/util/lock_table.go
index 1a4f029f8..d10b51334 100644
--- a/weed/util/lock_table.go
+++ b/weed/util/lock_table.go
@@ -64,12 +64,14 @@ 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 {
- glog.V(4).Infof("ActiveLock %d %s wait for %+v type=%v with waiters %d active %d.\n", lock.ID, lock.intention, key, lockType, len(entry.waiters), entry.activeLockOwnerCount)
- if glog.V(4) && len(entry.waiters) > 0 {
- for _, waiter := range entry.waiters {
- fmt.Printf(" %d", waiter.ID)
+ if glog.V(4) {
+ fmt.Printf("ActiveLock %d %s wait for %+v type=%v with waiters %d active %d.\n", lock.ID, lock.intention, key, lockType, len(entry.waiters), entry.activeLockOwnerCount)
+ if len(entry.waiters) > 0 {
+ for _, waiter := range entry.waiters {
+ fmt.Printf(" %d", waiter.ID)
+ }
+ fmt.Printf("\n")
}
- fmt.Printf("\n")
}
entry.waiters = append(entry.waiters, lock)
if lockType == ExclusiveLock {
@@ -91,12 +93,14 @@ func (lt *LockTable[T]) AcquireLock(intention string, key T, lockType LockType)
// Otherwise, grant the lock
entry.lockType = lockType
- glog.V(4).Infof("ActiveLock %d %s locked %+v type=%v with waiters %d active %d.\n", lock.ID, lock.intention, key, lockType, len(entry.waiters), entry.activeLockOwnerCount)
- if glog.V(4) && len(entry.waiters) > 0 {
- for _, waiter := range entry.waiters {
- fmt.Printf(" %d", waiter.ID)
+ if glog.V(4) {
+ fmt.Printf("ActiveLock %d %s locked %+v type=%v with waiters %d active %d.\n", lock.ID, lock.intention, key, lockType, len(entry.waiters), entry.activeLockOwnerCount)
+ if len(entry.waiters) > 0 {
+ for _, waiter := range entry.waiters {
+ fmt.Printf(" %d", waiter.ID)
+ }
+ fmt.Printf("\n")
}
- fmt.Printf("\n")
}
entry.mu.Unlock()
@@ -129,12 +133,14 @@ func (lt *LockTable[T]) ReleaseLock(key T, lock *ActiveLock) {
delete(lt.locks, key)
}
- glog.V(4).Infof("ActiveLock %d %s unlocked %+v type=%v with waiters %d active %d.\n", lock.ID, lock.intention, key, entry.lockType, len(entry.waiters), entry.activeLockOwnerCount)
- if len(entry.waiters) > 0 {
- for _, waiter := range entry.waiters {
- fmt.Printf(" %d", waiter.ID)
+ if glog.V(4) {
+ fmt.Printf("ActiveLock %d %s unlocked %+v type=%v with waiters %d active %d.\n", lock.ID, lock.intention, key, entry.lockType, len(entry.waiters), entry.activeLockOwnerCount)
+ if len(entry.waiters) > 0 {
+ for _, waiter := range entry.waiters {
+ fmt.Printf(" %d", waiter.ID)
+ }
+ fmt.Printf("\n")
}
- fmt.Printf("\n")
}
entry.activeLockOwnerCount--