pkg/blobinfocache/boltdb/boltdb.go
func lockPath(path string) {
	pl := func() *pathLock { // A scope for defer
		pathLocksMutex.Lock()
		defer pathLocksMutex.Unlock()
		pl, ok := pathLocks[path]
		if ok {
			pl.refCount++
		} else {
			pl = &pathLock{refCount: 1, mutex: sync.Mutex{}}
			pathLocks[path] = pl
		}
		return pl
	}()
	pl.mutex.Lock()
}
func lockPath(path string) {
	pl := func() *pathLock { // A scope for defer
		pathLocksMutex.Lock()
		defer pathLocksMutex.Unlock()
		pl, ok := pathLocks[path]
		if ok {
			pl.refCount++
		} else {
			pl = &pathLock{refCount: 1, mutex: sync.Mutex{}}
			pathLocks[path] = pl
		}
		return pl
	}()
	pl.mutex.Lock()
}
func lockPath ( path string ) { pl := func ( ) * pathLock { // A scope for defer pathLocksMutex . Lock ( ) defer pathLocksMutex . Unlock ( ) pl , ok := pathLocks [ path ] if ok { pl . refCount ++ } else { pl = & pathLock { refCount : 1 , mutex : sync . Mutex { } } pathLocks [ path ] = pl } return pl } ( ) pl . mutex . Lock ( ) }
// lockPath obtains the pathLock for path.
// The caller must call unlockPath eventually.
lockPath obtains the pathLock for path . The caller must call unlockPath eventually .