commit | 19e03d7db789cc44ce3625a8ff14bcb8c1b4856c | [log] [tgz] |
---|---|---|
author | janakr <janakr@google.com> | Wed Jan 10 13:13:00 2018 -0800 |
committer | Copybara-Service <copybara-piper@google.com> | Wed Jan 10 13:15:05 2018 -0800 |
tree | 5fafef9d92c16185a405cdb9dc22bb5768ff1a19 | |
parent | ee28bc3a15a7eeeccf21b39b3d307b64ae8acee4 [diff] |
Remove synchronization from InMemoryNodeEntry#getValue{,MaybeWithMetadata} and #toValue. I saw significant contention from this method in some experiments, and the synchronization isn't needed, since we only call these methods on done nodes (as determined by #isDone), and a node that is observably done cannot racily change its value. PiperOrigin-RevId: 181507133
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel only rebuilds what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md
Bazel is released in ‘Beta’. See the product roadmap to learn about the path toward a stable 1.0 release.