prysm-pulse/tools/analyzers/recursivelock/testdata/nonrlocks.go
Nishant Das 2a7a09b112
Add Lock Analyzer (#10430)
* add lock analyzer

* fix locks

* progress

* fix failures

* fix error log

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
2022-04-05 16:39:48 +00:00

27 lines
906 B
Go

// These are all non recursive rlocks. Testing to make sure there are no false positives
package testdata
func (resource *ProtectResource) NestedRLockWithDefer() string {
resource.RLock()
defer resource.RUnlock()
return resource.GetResource() // want `found recursive read lock call`
}
func (resource *NestedProtectResource) NonNestedRLockDifferentRLocks() {
resource.RLock()
resource.GetNestedPResource() // get nested resource uses RLock, but at a deeper level in the struct
resource.RUnlock()
}
func (resource *ProtectResource) NestedLockWithDefer() string {
resource.Lock()
defer resource.Unlock()
return resource.GetResourceLocked() // want `found recursive lock call`
}
func (resource *NestedProtectResource) NonNestedLockDifferentLocks() {
resource.Lock()
resource.GetNestedPResourceLocked() // get nested resource uses RLock, but at a deeper level in the struct
resource.Unlock()
}