commit | 4a02a3019a7ce18354d506c1fd8a5bc0dbbf09dd | [log] [tgz] |
---|---|---|
author | Colin Cross <ccross@android.com> | Tue May 16 10:33:58 2017 -0700 |
committer | Colin Cross <ccross@android.com> | Tue May 16 10:55:29 2017 -0700 |
tree | 388977347058e46ee85c99f8519d81f515ee371e | |
parent | ea10dedba9445aad5a14fc171a72c06e4d2280ba [diff] |
Cap concurrency when parsing blueprint files Darwin has a default limit of 256 open files per process. Parsing too many blueprint files in parallel can hit the limit. Cap the concurrency at 200. Test: manual testing with limit set to 32 Change-Id: Ic64d21d2c0ffd7c86bf3f02fb51216ee5684a80c
Blueprint is a meta-build system that reads in Blueprints files that describe modules that need to be built, and produces a Ninja manifest describing the commands that need to be run and their dependencies. Where most build systems use built-in rules or a domain-specific language to describe the logic for converting module descriptions to build rules, Blueprint delegates this to per-project build logic written in Go. For large, heterogenous projects this allows the inherent complexity of the build logic to be maintained in a high-level language, while still allowing simple changes to individual modules by modifying easy to understand Blueprints files.