aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/container-orchestrated-devices/container-device-interface/pkg/cdi/spec.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2022-09-29 12:20:59 +0200
committerGitHub <noreply@github.com>2022-09-29 12:20:59 +0200
commit2489a94b98b9d2a9f74d6899dc94aaf92a8a6246 (patch)
treecbcb56945c93bf86cae6a368168179a5e5bdd024 /vendor/github.com/container-orchestrated-devices/container-device-interface/pkg/cdi/spec.go
parent64ca617a42981cc6846ad85744a0826d7cc14318 (diff)
parentba70dd5ecf6b4e5e55f55bcf966c513c3ce944be (diff)
downloadpodman-2489a94b98b9d2a9f74d6899dc94aaf92a8a6246.tar.gz
podman-2489a94b98b9d2a9f74d6899dc94aaf92a8a6246.tar.bz2
podman-2489a94b98b9d2a9f74d6899dc94aaf92a8a6246.zip
Merge pull request #15971 from containers/dependabot/go_modules/github.com/container-orchestrated-devices/container-device-interface-0.5.2
build(deps): bump github.com/container-orchestrated-devices/container-device-interface from 0.5.1 to 0.5.2
Diffstat (limited to 'vendor/github.com/container-orchestrated-devices/container-device-interface/pkg/cdi/spec.go')
-rw-r--r--vendor/github.com/container-orchestrated-devices/container-device-interface/pkg/cdi/spec.go7
1 files changed, 7 insertions, 0 deletions
diff --git a/vendor/github.com/container-orchestrated-devices/container-device-interface/pkg/cdi/spec.go b/vendor/github.com/container-orchestrated-devices/container-device-interface/pkg/cdi/spec.go
index 9a5d451c9..3dfbab2f0 100644
--- a/vendor/github.com/container-orchestrated-devices/container-device-interface/pkg/cdi/spec.go
+++ b/vendor/github.com/container-orchestrated-devices/container-device-interface/pkg/cdi/spec.go
@@ -21,6 +21,7 @@ import (
"io/ioutil"
"os"
"path/filepath"
+ "sync"
oci "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
@@ -41,6 +42,7 @@ var (
// Externally set CDI Spec validation function.
specValidator func(*cdi.Spec) error
+ validatorLock sync.RWMutex
)
// Spec represents a single CDI Spec. It is usually loaded from a
@@ -249,11 +251,16 @@ func ParseSpec(data []byte) (*cdi.Spec, error) {
// is used for extra CDI Spec content validation whenever a Spec file
// loaded (using ReadSpec() or NewSpec()) or written (Spec.Write()).
func SetSpecValidator(fn func(*cdi.Spec) error) {
+ validatorLock.Lock()
+ defer validatorLock.Unlock()
specValidator = fn
}
// validateSpec validates the Spec using the extneral validator.
func validateSpec(raw *cdi.Spec) error {
+ validatorLock.RLock()
+ defer validatorLock.RUnlock()
+
if specValidator == nil {
return nil
}