Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 85486573 authored by Spandan Das's avatar Spandan Das Committed by Gerrit Code Review
Browse files

Merge "Replace sync.Mutex with Sync.Map" into main

parents 1e218403 43dfeb6d
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -350,13 +350,12 @@ type PkgPathInterface interface {
var (
	protoIncludeDirGeneratedSuffix = ".include_dir_bp2build_generated_proto"
	protoIncludeDirsBp2buildKey    = NewOnceKey("protoIncludeDirsBp2build")
	protoIncludeDirsBp2buildLock   sync.Mutex
)

func getProtoIncludeDirsBp2build(config Config) *map[protoIncludeDirKey]bool {
func getProtoIncludeDirsBp2build(config Config) *sync.Map {
	return config.Once(protoIncludeDirsBp2buildKey, func() interface{} {
		return &map[protoIncludeDirKey]bool{}
	}).(*map[protoIncludeDirKey]bool)
		return &sync.Map{}
	}).(*sync.Map)
}

// key for dynamically creating proto_library per proto.include_dirs
@@ -370,9 +369,6 @@ type protoIncludeDirKey struct {
// might create the targets in a subdirectory of `includeDir`
// Returns the labels of the proto_library targets
func createProtoLibraryTargetsForIncludeDirs(ctx Bp2buildMutatorContext, includeDirs []string) bazel.LabelList {
	protoIncludeDirsBp2buildLock.Lock()
	defer protoIncludeDirsBp2buildLock.Unlock()

	var ret bazel.LabelList
	for _, dir := range includeDirs {
		if exists, _, _ := ctx.Config().fs.Exists(filepath.Join(dir, "Android.bp")); !exists {
@@ -389,11 +385,10 @@ func createProtoLibraryTargetsForIncludeDirs(ctx Bp2buildMutatorContext, include
				Label: "//" + pkg + ":" + label,
			})
			key := protoIncludeDirKey{dir: dir, subpackgeInDir: pkg}
			if _, exists := (*dirMap)[key]; exists {
			if _, exists := dirMap.LoadOrStore(key, true); exists {
				// A proto_library has already been created for this package relative to this include dir
				continue
			}
			(*dirMap)[key] = true
			srcs := protoLabelelsPartitionedByPkg[pkg]
			rel, err := filepath.Rel(dir, pkg)
			if err != nil {