MCPcopy Index your code
hub / github.com/linuxkit/linuxkit / Lock

Method Lock

src/cmd/linuxkit/cache/provider.go:55–70  ·  view source on GitHub ↗

Lock locks the cache directory to prevent concurrent access

()

Source from the content-addressed store, hash-verified

53
54// Lock locks the cache directory to prevent concurrent access
55func (p *Provider) Lock() error {
56 p.lockMut.Lock()
57 defer p.lockMut.Unlock()
58
59 // if the lock is already set, we do not need to do anything
60 if p.lock != nil {
61 return nil
62 }
63 var lockFile = filepath.Join(p.dir, lockfile)
64 lock, err := util.Lock(lockFile)
65 if err != nil {
66 return fmt.Errorf("unable to retrieve cache lock %s: %v", lockFile, err)
67 }
68 p.lock = lock
69 return nil
70}
71
72// Unlock releases the lock on the cache directory
73func (p *Provider) Unlock() {

Callers 9

IndexMethod · 0.95
PullMethod · 0.95
GetMethod · 0.95
ImagePullMethod · 0.95
ImageLoadMethod · 0.95
IndexWriteMethod · 0.95
DescriptorWriteMethod · 0.95
RemoveDescriptorsMethod · 0.95
UnlockMethod · 0.80

Implementers 11

ProviderCDROMpkg/metadata/provider_cdrom.go
ProviderGCPpkg/metadata/provider_gcp.go
ProviderVMwarepkg/metadata/provider_vmware_unsupport
ProviderEquinixMetalpkg/metadata/provider_equinixmetal.go
ProviderVultrpkg/metadata/provider_vultr.go
ProviderDigitalOceanpkg/metadata/provider_digitalocean.go
ProviderHetznerpkg/metadata/provider_hetzner.go
ProviderMetaldatapkg/metadata/provider_metaldata.go
ProviderOpenstackpkg/metadata/provider_openstack.go
ProviderScalewaypkg/metadata/provider_scaleway.go
ProviderAWSpkg/metadata/provider_aws.go

Calls 1

UnlockMethod · 0.45

Tested by

no test coverage detected