Make BottomUpMutators parallel
Append .Parallel() to all of the RegisterBottomUpMutator calls to tell Blueprint it can run them in parallel. Test: identical build.ninja, passes race detector Change-Id: I969a0689522d4cba7c8ff51e2aa00fe2fd338a89
This commit is contained in:
14
cc/cc.go
14
cc/cc.go
@@ -38,17 +38,17 @@ func init() {
|
||||
// LinkageMutator must be registered after common.ArchMutator, but that is guaranteed by
|
||||
// the Go initialization order because this package depends on common, so common's init
|
||||
// functions will run first.
|
||||
android.RegisterBottomUpMutator("link", linkageMutator)
|
||||
android.RegisterBottomUpMutator("ndk_api", ndkApiMutator)
|
||||
android.RegisterBottomUpMutator("test_per_src", testPerSrcMutator)
|
||||
android.RegisterBottomUpMutator("begin", beginMutator)
|
||||
android.RegisterBottomUpMutator("deps", depsMutator)
|
||||
android.RegisterBottomUpMutator("link", linkageMutator).Parallel()
|
||||
android.RegisterBottomUpMutator("ndk_api", ndkApiMutator).Parallel()
|
||||
android.RegisterBottomUpMutator("test_per_src", testPerSrcMutator).Parallel()
|
||||
android.RegisterBottomUpMutator("begin", beginMutator).Parallel()
|
||||
android.RegisterBottomUpMutator("deps", depsMutator).Parallel()
|
||||
|
||||
android.RegisterTopDownMutator("asan_deps", sanitizerDepsMutator(asan))
|
||||
android.RegisterBottomUpMutator("asan", sanitizerMutator(asan))
|
||||
android.RegisterBottomUpMutator("asan", sanitizerMutator(asan)).Parallel()
|
||||
|
||||
android.RegisterTopDownMutator("tsan_deps", sanitizerDepsMutator(tsan))
|
||||
android.RegisterBottomUpMutator("tsan", sanitizerMutator(tsan))
|
||||
android.RegisterBottomUpMutator("tsan", sanitizerMutator(tsan)).Parallel()
|
||||
|
||||
pctx.Import("android/soong/cc/config")
|
||||
}
|
||||
|
@@ -18,6 +18,7 @@ import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
|
||||
@@ -58,7 +59,8 @@ var (
|
||||
|
||||
// These libraries have migrated over to the new ndk_library, which is added
|
||||
// as a variation dependency via depsMutator.
|
||||
ndkMigratedLibs = []string{}
|
||||
ndkMigratedLibs = []string{}
|
||||
ndkMigratedLibsLock sync.Mutex // protects ndkMigratedLibs writes during parallel beginMutator
|
||||
)
|
||||
|
||||
// Creates a stub shared library based on the provided version file.
|
||||
@@ -177,6 +179,8 @@ func (c *stubDecorator) compilerInit(ctx BaseModuleContext) {
|
||||
c.baseCompiler.compilerInit(ctx)
|
||||
|
||||
name := strings.TrimSuffix(ctx.ModuleName(), ".ndk")
|
||||
ndkMigratedLibsLock.Lock()
|
||||
defer ndkMigratedLibsLock.Unlock()
|
||||
for _, lib := range ndkMigratedLibs {
|
||||
if lib == name {
|
||||
return
|
||||
|
Reference in New Issue
Block a user