Make defaults TopDownMutator parallel
Append .Parallel() to the defaults RegisterTopDownMutator call to tell Blueprint it can run it in parallel. Saves ~500ms in soong_build. Change-Id: I43ddd9d6995674ccc06fed6928514f15a15712c1
This commit is contained in:
parent
aa99f84e57
commit
76f2f97c51
3 changed files with 18 additions and 16 deletions
|
@ -26,7 +26,7 @@ import (
|
|||
|
||||
func init() {
|
||||
RegisterBottomUpMutator("defaults_deps", defaultsDepsMutator).Parallel()
|
||||
RegisterTopDownMutator("defaults", defaultsMutator)
|
||||
RegisterTopDownMutator("defaults", defaultsMutator).Parallel()
|
||||
|
||||
RegisterBottomUpMutator("arch", ArchMutator).Parallel()
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ type androidBottomUpMutatorContext struct {
|
|||
androidBaseContextImpl
|
||||
}
|
||||
|
||||
func RegisterBottomUpMutator(name string, mutator AndroidBottomUpMutator) soong.BottomUpMutatorHandle {
|
||||
func RegisterBottomUpMutator(name string, mutator AndroidBottomUpMutator) soong.MutatorHandle {
|
||||
return soong.RegisterBottomUpMutator(name, func(ctx blueprint.BottomUpMutatorContext) {
|
||||
if a, ok := ctx.Module().(Module); ok {
|
||||
actx := &androidBottomUpMutatorContext{
|
||||
|
@ -56,8 +56,8 @@ func RegisterBottomUpMutator(name string, mutator AndroidBottomUpMutator) soong.
|
|||
})
|
||||
}
|
||||
|
||||
func RegisterTopDownMutator(name string, mutator AndroidTopDownMutator) {
|
||||
soong.RegisterTopDownMutator(name, func(ctx blueprint.TopDownMutatorContext) {
|
||||
func RegisterTopDownMutator(name string, mutator AndroidTopDownMutator) soong.MutatorHandle {
|
||||
return soong.RegisterTopDownMutator(name, func(ctx blueprint.TopDownMutatorContext) {
|
||||
if a, ok := ctx.Module().(Module); ok {
|
||||
actx := &androidTopDownMutatorContext{
|
||||
TopDownMutatorContext: ctx,
|
||||
|
|
26
register.go
26
register.go
|
@ -47,21 +47,23 @@ func RegisterSingletonType(name string, factory blueprint.SingletonFactory) {
|
|||
singletons = append(singletons, singleton{name, factory})
|
||||
}
|
||||
|
||||
func RegisterBottomUpMutator(name string, m blueprint.BottomUpMutator) BottomUpMutatorHandle {
|
||||
func RegisterBottomUpMutator(name string, m blueprint.BottomUpMutator) MutatorHandle {
|
||||
mutator := &mutator{name: name, bottomUpMutator: m}
|
||||
mutators = append(mutators, mutator)
|
||||
return mutator
|
||||
}
|
||||
|
||||
func RegisterTopDownMutator(name string, m blueprint.TopDownMutator) {
|
||||
mutators = append(mutators, &mutator{name: name, topDownMutator: m})
|
||||
func RegisterTopDownMutator(name string, m blueprint.TopDownMutator) MutatorHandle {
|
||||
mutator := &mutator{name: name, topDownMutator: m}
|
||||
mutators = append(mutators, mutator)
|
||||
return mutator
|
||||
}
|
||||
|
||||
type BottomUpMutatorHandle interface {
|
||||
Parallel() BottomUpMutatorHandle
|
||||
type MutatorHandle interface {
|
||||
Parallel() MutatorHandle
|
||||
}
|
||||
|
||||
func (mutator *mutator) Parallel() BottomUpMutatorHandle {
|
||||
func (mutator *mutator) Parallel() MutatorHandle {
|
||||
mutator.parallel = true
|
||||
return mutator
|
||||
}
|
||||
|
@ -78,14 +80,14 @@ func NewContext() *blueprint.Context {
|
|||
}
|
||||
|
||||
for _, t := range mutators {
|
||||
var handle blueprint.MutatorHandle
|
||||
if t.bottomUpMutator != nil {
|
||||
handle := ctx.RegisterBottomUpMutator(t.name, t.bottomUpMutator)
|
||||
if t.parallel {
|
||||
handle.Parallel()
|
||||
}
|
||||
handle = ctx.RegisterBottomUpMutator(t.name, t.bottomUpMutator)
|
||||
} else if t.topDownMutator != nil {
|
||||
handle = ctx.RegisterTopDownMutator(t.name, t.topDownMutator)
|
||||
}
|
||||
if t.topDownMutator != nil {
|
||||
ctx.RegisterTopDownMutator(t.name, t.topDownMutator)
|
||||
if t.parallel {
|
||||
handle.Parallel()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue