Cluster information:
Kubernetes version: 1.20
I wonder why the implementation of When of ItemExponentialFailureRateLimiter use defer r.failuresLock.Unlock()
to unlock. Why not unlock early after read and write r.failures
?
The original code:
r.failuresLock.Lock()
defer r.failuresLock.Unlock()
exp := r.failures[item]
r.failures[item] = r.failures[item] + 1
Early unlock:
r.failuresLock.Lock()
exp := r.failures[item]
r.failures[item] = r.failures[item] + 1
r.failuresLock.Unlock()
Maybe unlock early can improve performance of the queue, will it cause any problem?