summaryrefslogtreecommitdiff
path: root/android/singleton.go
diff options
context:
space:
mode:
author Ramy Medhat <abdelaal@google.com> 2020-03-31 22:14:52 -0400
committer Ramy Medhat <abdelaal@google.com> 2020-03-31 22:18:40 -0400
commit944839a88a26dafc01737912eb1911d514391d46 (patch)
treeb2bf00474bdc8bf19b3803fa73cb9321f00acabf /android/singleton.go
parent7182c45fe7c986fa6a6d251af91d0b8d011c5131 (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.go15
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 {