diff options
author | 2020-03-31 22:14:52 -0400 | |
---|---|---|
committer | 2020-03-31 22:18:40 -0400 | |
commit | 944839a88a26dafc01737912eb1911d514391d46 (patch) | |
tree | b2bf00474bdc8bf19b3803fa73cb9321f00acabf /android/singleton.go | |
parent | 7182c45fe7c986fa6a6d251af91d0b8d011c5131 (diff) |
Fix RuleBuilder remoteable actions running in the local pool.
This CL fixes a bug with RuleBuilder's handling of remoteable actions.
It adds a new type of pool to identify remoteable rules by the android
module context. The pool is then set to nil to actually run actions at
NINJA_REMOTE_NUM_JOBS parallelism.
Test: built aosp crosshatch userdebug
Change-Id: I29452f6fc7a161b94189731e3e3cc1f34907b80c
Diffstat (limited to 'android/singleton.go')
-rw-r--r-- | android/singleton.go | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/android/singleton.go b/android/singleton.go index 45a9b8243..568398cdd 100644 --- a/android/singleton.go +++ b/android/singleton.go @@ -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 { |