コード例 #1
0
ファイル: locks.go プロジェクト: docker/containerd
func unlock(lock lockfile.Lockfile) error {
	locksMu.Lock()
	defer locksMu.Unlock()

	if _, ok := locks[lock]; !ok {
		return nil
	}

	delete(locks, lock)
	return lock.Unlock()
}
コード例 #2
0
ファイル: locks.go プロジェクト: docker/containerd
func tryLock(lock lockfile.Lockfile) error {
	locksMu.Lock()
	defer locksMu.Unlock()

	if _, ok := locks[lock]; ok {
		return errors.New("file in use")
	}

	if err := lock.TryLock(); err != nil {
		return err
	}

	locks[lock] = struct{}{}
	return nil
}