mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
adjust logs
This commit is contained in:
parent
3e23421608
commit
2df70ce95f
|
@ -64,13 +64,15 @@ func (lt *LockTable[T]) AcquireLock(intention string, key T, lockType LockType)
|
||||||
// If the lock is held exclusively, wait
|
// If the lock is held exclusively, wait
|
||||||
entry.mu.Lock()
|
entry.mu.Lock()
|
||||||
if len(entry.waiters) > 0 || lockType == ExclusiveLock {
|
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) {
|
||||||
if glog.V(4) && len(entry.waiters) > 0 {
|
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 {
|
for _, waiter := range entry.waiters {
|
||||||
fmt.Printf(" %d", waiter.ID)
|
fmt.Printf(" %d", waiter.ID)
|
||||||
}
|
}
|
||||||
fmt.Printf("\n")
|
fmt.Printf("\n")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
entry.waiters = append(entry.waiters, lock)
|
entry.waiters = append(entry.waiters, lock)
|
||||||
if lockType == ExclusiveLock {
|
if lockType == ExclusiveLock {
|
||||||
for !lock.isDeleted && ((len(entry.waiters) > 0 && lock.ID != entry.waiters[0].ID) || entry.activeLockOwnerCount > 0) {
|
for !lock.isDeleted && ((len(entry.waiters) > 0 && lock.ID != entry.waiters[0].ID) || entry.activeLockOwnerCount > 0) {
|
||||||
|
@ -91,13 +93,15 @@ func (lt *LockTable[T]) AcquireLock(intention string, key T, lockType LockType)
|
||||||
|
|
||||||
// Otherwise, grant the lock
|
// Otherwise, grant the lock
|
||||||
entry.lockType = lockType
|
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) {
|
||||||
if glog.V(4) && len(entry.waiters) > 0 {
|
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 {
|
for _, waiter := range entry.waiters {
|
||||||
fmt.Printf(" %d", waiter.ID)
|
fmt.Printf(" %d", waiter.ID)
|
||||||
}
|
}
|
||||||
fmt.Printf("\n")
|
fmt.Printf("\n")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
entry.mu.Unlock()
|
entry.mu.Unlock()
|
||||||
|
|
||||||
return lock
|
return lock
|
||||||
|
@ -129,13 +133,15 @@ func (lt *LockTable[T]) ReleaseLock(key T, lock *ActiveLock) {
|
||||||
delete(lt.locks, key)
|
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 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 {
|
if len(entry.waiters) > 0 {
|
||||||
for _, waiter := range entry.waiters {
|
for _, waiter := range entry.waiters {
|
||||||
fmt.Printf(" %d", waiter.ID)
|
fmt.Printf(" %d", waiter.ID)
|
||||||
}
|
}
|
||||||
fmt.Printf("\n")
|
fmt.Printf("\n")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
entry.activeLockOwnerCount--
|
entry.activeLockOwnerCount--
|
||||||
|
|
||||||
// Notify the next waiter
|
// Notify the next waiter
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package util
|
package util
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"sync"
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
|
@ -26,14 +27,14 @@ func TestOrderedLock(t *testing.T) {
|
||||||
lock := lt.AcquireLock("", key, lockType)
|
lock := lt.AcquireLock("", key, lockType)
|
||||||
|
|
||||||
// Lock acquired, perform some work
|
// Lock acquired, perform some work
|
||||||
glog.V(4).Infof("ActiveLock %d acquired the lock.\n", lock.ID)
|
fmt.Printf("ActiveLock %d acquired lock %v\n", lock.ID, lockType)
|
||||||
|
|
||||||
// Simulate some work
|
// Simulate some work
|
||||||
time.Sleep(time.Duration(rand.Int31n(10)*10) * time.Millisecond)
|
time.Sleep(time.Duration(rand.Int31n(10)*10) * time.Millisecond)
|
||||||
|
|
||||||
// Release the lock
|
// Release the lock
|
||||||
lt.ReleaseLock(key, lock)
|
lt.ReleaseLock(key, lock)
|
||||||
glog.V(4).Infof("ActiveLock %d released the lock.\n", lock.ID)
|
fmt.Printf("ActiveLock %d released lock %v\n", lock.ID, lockType)
|
||||||
}(i)
|
}(i)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue