Merge "Fix RuleBuilder remoteable actions running in the local pool." into rvc-dev
This commit is contained in:
commit
99899b3582
|
@ -100,6 +100,9 @@ var (
|
|||
// Used only when USE_GOMA=true is set, to restrict non-goma jobs to the local parallelism value
|
||||
localPool = blueprint.NewBuiltinPool("local_pool")
|
||||
|
||||
// Used only by RuleBuilder to identify remoteable rules. Does not actually get created in ninja.
|
||||
remotePool = blueprint.NewBuiltinPool("remote_pool")
|
||||
|
||||
// Used for processes that need significant RAM to ensure there are not too many running in parallel.
|
||||
highmemPool = blueprint.NewBuiltinPool("highmem_pool")
|
||||
)
|
||||
|
|
|
@ -1500,10 +1500,17 @@ func (m *moduleContext) Variable(pctx PackageContext, name, value string) {
|
|||
func (m *moduleContext) Rule(pctx PackageContext, name string, params blueprint.RuleParams,
|
||||
argNames ...string) blueprint.Rule {
|
||||
|
||||
if m.config.UseRemoteBuild() && params.Pool == nil {
|
||||
// When USE_GOMA=true or USE_RBE=true are set and the rule is not supported by goma/RBE, restrict
|
||||
// jobs to the local parallelism value
|
||||
params.Pool = localPool
|
||||
if m.config.UseRemoteBuild() {
|
||||
if params.Pool == nil {
|
||||
// When USE_GOMA=true or USE_RBE=true are set and the rule is not supported by goma/RBE, restrict
|
||||
// jobs to the local parallelism value
|
||||
params.Pool = localPool
|
||||
} else if params.Pool == remotePool {
|
||||
// remotePool is a fake pool used to identify rule that are supported for remoting. If the rule's
|
||||
// pool is the remotePool, replace with nil so that ninja runs it at NINJA_REMOTE_NUM_JOBS
|
||||
// parallelism.
|
||||
params.Pool = nil
|
||||
}
|
||||
}
|
||||
|
||||
rule := m.bp.Rule(pctx.PackageContext, name, params, argNames...)
|
||||
|
|
|
@ -446,7 +446,8 @@ func (r *RuleBuilder) Build(pctx PackageContext, ctx BuilderContext, name string
|
|||
if ctx.Config().UseGoma() && r.remoteable.Goma {
|
||||
// When USE_GOMA=true is set and the rule is supported by goma, allow jobs to run outside the local pool.
|
||||
} else if ctx.Config().UseRBE() && r.remoteable.RBE {
|
||||
// When USE_RBE=true is set and the rule is supported by RBE, allow jobs to run outside the local pool.
|
||||
// When USE_RBE=true is set and the rule is supported by RBE, use the remotePool.
|
||||
pool = remotePool
|
||||
} else if r.highmem {
|
||||
pool = highmemPool
|
||||
} else if ctx.Config().UseRemoteBuild() {
|
||||
|
|
|
@ -128,10 +128,17 @@ func (s *singletonContextAdaptor) Variable(pctx PackageContext, name, value stri
|
|||
}
|
||||
|
||||
func (s *singletonContextAdaptor) Rule(pctx PackageContext, name string, params blueprint.RuleParams, argNames ...string) blueprint.Rule {
|
||||
if s.Config().UseRemoteBuild() && params.Pool == nil {
|
||||
// When USE_GOMA=true or USE_RBE=true are set and the rule is not supported by goma/RBE, restrict
|
||||
// jobs to the local parallelism value
|
||||
params.Pool = localPool
|
||||
if s.Config().UseRemoteBuild() {
|
||||
if params.Pool == nil {
|
||||
// When USE_GOMA=true or USE_RBE=true are set and the rule is not supported by goma/RBE, restrict
|
||||
// jobs to the local parallelism value
|
||||
params.Pool = localPool
|
||||
} else if params.Pool == remotePool {
|
||||
// remotePool is a fake pool used to identify rule that are supported for remoting. If the rule's
|
||||
// pool is the remotePool, replace with nil so that ninja runs it at NINJA_REMOTE_NUM_JOBS
|
||||
// parallelism.
|
||||
params.Pool = nil
|
||||
}
|
||||
}
|
||||
rule := s.SingletonContext.Rule(pctx.PackageContext, name, params, argNames...)
|
||||
if s.Config().captureBuild {
|
||||
|
|
Loading…
Reference in New Issue