Commit graph

2714 commits

Author SHA1 Message Date
Colin Cross
95bec3331c Use strings instead of simpleNinjaStrings where possible
Storing every string without ninja variable references through
simpleNinjaString costs 24 bytes and a heap allocation.  16 bytes
is used for the ninjaString.str string, 8 bytes for the
ninjaString.variables *[]variableReference.  An additional 8 bytes
is used for the resulting pointer into the heap.

The vast majority of calls to simpleNinjaString originate in
blueprint.parseBuildParams, which converts all of the parameters
passed to ctx.Build into ninjaStrings.  All together this was
allocating 1.575 GB of *ninjaString objects.

Add a parseNinjaOrSimpleStrings function that converts input strings
into ninjaStrings if they have ninja variable references, but also
returns a slice of plain strings for input strings without any ninja
variable references.  That still results in 1.39 GB of allocations just
for the output string slice, so also add an optimization that reuses
the input string slice as the output slice if all of the strings had
no variable references.

Plumb the resulting strings through everywhere that the []*ninjaStrings
were used.

This reduces the total memory allocations inside
blueprint.parseBuildParams in my AOSP aosp_cf_x86_64_phone-userdebug
build from 3.337 GB to 1.786 GB.

Test: ninja_strings_test.go
Change-Id: I51bc138a2a6b1cc7383c7df0a483ccb067ffa02b
2023-11-01 15:15:15 -07:00
Colin Cross
098c09334f Remove unnecessary locking in fs
osFs.acquire and osFs.release are surprisingly expensive, using a
combined 345.7s of runtime in an AOSP aosp_cf_x86_64_phone-userdebug
build.  They are used to ensure we don't use too many simultaneous
open files, but many of the functions they are called from don't
actually open a file.  Remove them from all the stat-based functions
(Exists, IsDir, IsSymlink, Lstat, Stat), and from ReadLink.  After
this change the time spent in acquire and release is effectively
zero.

Test: SOONG_PROFILE_CPU=/tmp/cpu.pprof m nothing
Change-Id: Ie5e22e33c61794354821f05ab79ceb4efc3b276c
2023-10-31 20:24:35 +00:00
Colin Cross
0065131f50 Always generate rules for blueprint tests
Generate the rules to build and run the blueprint tests whether or
not running the tests during bootstrap is enabled, and only add them
as validation dependencies if running the tests is enabled.  Export
the outputs of the tests as a phony target for checkbuild to depend on.

Bug: 269296618
Test: m nothing
Test: aninja -t path checkbuild out/host/linux-x86/bin/go/soong-java/test/test.passed
Change-Id: I09cd20d802bed5a659f3f36e87128d4281dfcfb0
2023-10-24 11:05:56 -07:00
Rashid Zaman
c72a75269d bpfmt: Process all blueprint files when a directory is specified am: a29ee638ea
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2694306

Change-Id: I7ca72d73c24d2221176998d3d4b08b51d167887a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-08-22 21:51:17 +00:00
Rashid Zaman
a29ee638ea bpfmt: Process all blueprint files when a directory is specified
Currently when a directory path is specified bpfmt only processes files
named "Blueprints" so change this to also process files with a `.bp`
suffix.

Test: Manual + bpfmt -d frameworks/base/services shows differences

Change-Id: I5a6356f387892934ee8e83362db13cda6156ed51
Signed-off-by: Rashid Zaman <rashidz@meta.com>
2023-08-04 01:01:55 -07:00
Xin Li
da4de251ac Empty Merge Android U (ab/10368041)
Bug: 291102124
Merged-In: Ia1adf67a8c85303f1c3f3ea9d6c1565041eaa1a5
Change-Id: I2c12f5bb76746ab889eff1db829d6d586bd64ace
2023-07-14 16:53:21 -07:00
LaMont Jones
fa016e5910 Wrap singleton ninjaString Eval calls am: 7c2ebdef75
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2654105

Change-Id: I1b40f1aa57d06cee6cacabc1779a7449789986fd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-07-12 16:57:01 +00:00
LaMont Jones
7c2ebdef75 Wrap singleton ninjaString Eval calls
This avoids a concurrent map read and write error in parallel
singletons.

Bug: 290795374
Test: manual, treehugger
Change-Id: I7f89909a98c4f530da92a3d2cc01ca8eaeddbfa0
2023-07-11 19:58:01 +00:00
Spandan Das
d1044697df Merge "Add a testdata property in goPackage and goBinary" am: 5d3bfd147b
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2636751

Change-Id: Iaf37d6be7b15a3aca23df54452adc3de8f5c1463
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-28 16:33:46 +00:00
Spandan Das
5d3bfd147b Merge "Add a testdata property in goPackage and goBinary" 2023-06-28 15:49:27 +00:00
Treehugger Robot
27186d0a91 Merge "Plumb module tags through to ninja." am: 797fe25cb2
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2631633

Change-Id: Id4acacee7905d4fa469bd2467ef1b09e1a8ccd99
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-23 19:21:56 +00:00
Treehugger Robot
797fe25cb2 Merge "Plumb module tags through to ninja." 2023-06-23 18:08:07 +00:00
Spandan Das
a6e512f08c Export goPackage and goBinary from bootstrap package am: 4e84d6b010
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2627057

Change-Id: I4c2c3f62d5c7994cc2d8746b74dbcc12354675fd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-23 08:17:56 +00:00
Spandan Das
6a3475adf5 Add a testdata property in goPackage and goBinary
Some go tests depend on testData, but do not declare it explicitly. In
preparation for the stricter sandboxing constratints imposed by Bazel,
introduce this property.

This will be a no-op in Soong for now. But bp2build will convert it into
`data` property of go_test

Test: go build ./blueprint/bootstrap
Bug: 288491147
Change-Id: I0e1e7941db1efe6f1488936d9bae7e8d295b88ba
2023-06-23 00:15:44 +00:00
Spandan Das
4e84d6b010 Export goPackage and goBinary from bootstrap package
These two module types will be special-cased in bp2build. To enable this
special-casing, export from the package alongwith getter methods to
access its properties.

Test: go build ./bootstrap

Change-Id: I9ef7ac4b6331fec99713296f8f78f614f3536847
2023-06-22 23:50:02 +00:00
Dan Albert
629a6a3bc3 Plumb module tags through to ninja.
Bug: http://b/259130368
Test: built android, saw tags set in perfetto trace
Change-Id: I09618114832b143a10a2f84baccfaf3aa0fd5bd8
2023-06-22 17:15:33 +00:00
Treehugger Robot
3f24bff0b4 Merge "Helper function to register go module types in tests" am: f99595ba0d am: 74652490f3 am: 8dc45fc0e9
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2627056

Change-Id: Ia1adf67a8c85303f1c3f3ea9d6c1565041eaa1a5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-21 22:22:10 +00:00
Treehugger Robot
8dc45fc0e9 Merge "Helper function to register go module types in tests" am: f99595ba0d am: 74652490f3
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2627056

Change-Id: I185a3d853bdd2748b240b98408d3439c8fb6e857
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-21 21:38:31 +00:00
Treehugger Robot
74652490f3 Merge "Helper function to register go module types in tests" am: f99595ba0d
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2627056

Change-Id: I8d0b96415969a9e9c27498fe7dfc94ab433a0c95
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-21 20:55:40 +00:00
Treehugger Robot
f99595ba0d Merge "Helper function to register go module types in tests" 2023-06-21 20:07:28 +00:00
Lukacs T. Berki
82e8ae635e Make RunBlueprint() return an error, if need be. am: 2cd5fe6206 am: b554384964 am: c3d04341f8
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2628106

Change-Id: I8d93194a0ce9e62b3e351433fb2fd22b78de668f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-21 13:11:23 +00:00
Lukacs T. Berki
c3d04341f8 Make RunBlueprint() return an error, if need be. am: 2cd5fe6206 am: b554384964
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2628106

Change-Id: I668b63b72983b1de7b610345df07215cfc47b731
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-21 12:25:14 +00:00
Lukacs T. Berki
b554384964 Make RunBlueprint() return an error, if need be. am: 2cd5fe6206
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2628106

Change-Id: Iaf197a77d9bd6b7cec3a9c597e4e3f275436b643
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-21 11:48:17 +00:00
Lukacs T. Berki
2cd5fe6206 Make RunBlueprint() return an error, if need be.
This is so that it doesn't need to abruptly call os.Exit(), denying
callers the opportunity to do cleanups.

Bug: 244730498
Test: Presubmits.
Change-Id: Ifd191d3bbbf2fdea2ca49e4fb552e5d1c557b80f
2023-06-20 09:44:50 +00:00
Colin Cross
ad37cb38f2 Optimize memory usage of ninjaString am: 6126fe8067 am: bf2fad52f5 am: 4f7e7ecdf8
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2628470

Change-Id: Ie235a5c13037754065f16a93bed77943d73d7491
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-16 18:02:27 +00:00
Colin Cross
4f7e7ecdf8 Optimize memory usage of ninjaString am: 6126fe8067 am: bf2fad52f5
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2628470

Change-Id: Id80bcc139ece811a14cccb7f7e2c5d391813e296
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-16 17:15:11 +00:00
Colin Cross
bf2fad52f5 Optimize memory usage of ninjaString am: 6126fe8067
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2628470

Change-Id: I1203d233b9c4e84a174b531b95620969f97ae9a9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-16 16:31:40 +00:00
Colin Cross
6126fe8067 Optimize memory usage of ninjaString
ninjaString is an interface, which uses 16 bytes of memory on top
of the size of the concrete type.  A literalNinjaString is a string,
which is another 16 bytes for the string header for a total of 32
bytes.  A varNinjaString is two slices, which are 24 bytes each
for the slice headers, for a total of 64 bytes.  The slices contain
the first constant string, and then altenrating variable and string
parts of the ninjaString, resulting in 16 bytes plus 32 bytes per
variable.

This patch replaces the ninjaString interface with a *ninjaString
concrete struct type.  The ninjaString struct is a string and a
pointer to a slice of variable references, for a total of 24 bytes.

ninjaStrings with no variable references (the equivalent of the old
literalNinjaString) have a nil slice, and now use 24 bytes instead
of 32 bytes.

ninjaStrings with variable references allocate a slice of variable
references that contain 32-bit start and end offsets and a Variable
interface, but reuse the original string and so avoid the extra
string headers, resulting in 24 bytes for the slice header, and
24 bytes per variable.

These savings reduce the peak memory usage averaged across 10 runs of
/bin/time -v build/soong/soong_ui.bash --make-mode nothing
on the internal master branch cf_x86_64_phone-userdebug build
from 50114842kB to 45577638kB, a savings of 4537204kB or 9%.

The new Benchmark_parseNinjaString shows savings in both time and
memory.  Before:
Benchmark_parseNinjaString/constant/1-128       	594251787	         2.006 ns/op	       0 B/op	       0 allocs/op
Benchmark_parseNinjaString/constant/10-128      	21191347	        65.57 ns/op	      16 B/op	       1 allocs/op
Benchmark_parseNinjaString/constant/100-128     	 9983748	       130.2 ns/op	     112 B/op	       1 allocs/op
Benchmark_parseNinjaString/constant/1000-128    	 2632527	       445.1 ns/op	    1024 B/op	       1 allocs/op
Benchmark_parseNinjaString/variable/1-128       	 2964896	       419.4 ns/op	     176 B/op	       4 allocs/op
Benchmark_parseNinjaString/variable/10-128      	 1807341	       670.6 ns/op	     192 B/op	       7 allocs/op
Benchmark_parseNinjaString/variable/100-128     	 1000000	      1092 ns/op	     352 B/op	       7 allocs/op
Benchmark_parseNinjaString/variable/1000-128    	  300649	      3773 ns/op	    1584 B/op	       7 allocs/op
Benchmark_parseNinjaString/variables/1-128      	 2858432	       441.6 ns/op	     176 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/2-128      	 2360505	       513.4 ns/op	     208 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/3-128      	 1867136	       635.6 ns/op	     240 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/4-128      	 1584045	       752.1 ns/op	     272 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/5-128      	 1338189	       885.8 ns/op	     304 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/10-128     	 1000000	      1468 ns/op	     464 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/100-128    	   88768	     12895 ns/op	    3712 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/1000-128   	    8972	    133627 ns/op	   32896 B/op	       4 allocs/op

After:
Benchmark_parseNinjaString/constant/1-128       	584600864	         2.004 ns/op	       0 B/op	       0 allocs/op
Benchmark_parseNinjaString/constant/10-128      	19274581	        64.84 ns/op	      16 B/op	       1 allocs/op
Benchmark_parseNinjaString/constant/100-128     	 9017640	       127.6 ns/op	     112 B/op	       1 allocs/op
Benchmark_parseNinjaString/constant/1000-128    	 2630797	       453.0 ns/op	    1024 B/op	       1 allocs/op
Benchmark_parseNinjaString/variable/1-128       	 3460422	       347.0 ns/op	     136 B/op	       4 allocs/op
Benchmark_parseNinjaString/variable/10-128      	 2103404	       519.9 ns/op	     152 B/op	       7 allocs/op
Benchmark_parseNinjaString/variable/100-128     	 1315778	       906.5 ns/op	     312 B/op	       7 allocs/op
Benchmark_parseNinjaString/variable/1000-128    	  354812	      3284 ns/op	    1544 B/op	       7 allocs/op
Benchmark_parseNinjaString/variables/1-128      	 3386868	       361.5 ns/op	     136 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/2-128      	 2675594	       456.9 ns/op	     160 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/3-128      	 2344670	       520.0 ns/op	     192 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/4-128      	 1919482	       648.1 ns/op	     208 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/5-128      	 1560556	       723.9 ns/op	     240 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/10-128     	 1000000	      1169 ns/op	     352 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/100-128    	  116738	     10168 ns/op	    2800 B/op	       4 allocs/op
Benchmark_parseNinjaString/variables/1000-128   	   10000	    105646 ns/op	   24688 B/op	       4 allocs/op

Bug: 286423944
Test: ninja_strings_test.go
Test: out/soong/build*.ninja is the same before and after this change
Change-Id: I1ecffbaccb0d0469a41fa31255c1b17311e01687
2023-06-15 21:53:56 -07:00
Spandan Das
c5db2df213 Helper function to register go module types in tests
These two module types will be special-cased in bp2build generation
logic in build/soong. To write bp2build tests, create a helper function
to register these two module types

Test: go build ./bootstrap
Change-Id: If6abd8c8911a525bf6841b199d8ce204941d7bcb
2023-06-14 17:44:07 +00:00
Chris Parsons
e79cb5165a Make skip-cloning blueprint option public am: 1b5e9aba43 am: e5c8b9ae6f am: 3ed7ebd759
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2623170

Change-Id: Ife9ecf4999c17a2277e381a2d979b3d89816a8a5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-14 04:27:47 +00:00
Chris Parsons
3ed7ebd759 Make skip-cloning blueprint option public am: 1b5e9aba43 am: e5c8b9ae6f
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2623170

Change-Id: Id10626fccc803753763531c9e2ecfbc133760a04
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-14 03:59:06 +00:00
Chris Parsons
e5c8b9ae6f Make skip-cloning blueprint option public am: 1b5e9aba43
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2623170

Change-Id: I99599570a6fff0a6099c427756008880d47d2751
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-14 03:18:51 +00:00
Chris Parsons
1b5e9aba43 Make skip-cloning blueprint option public
This allows non-test integrations to set this mode.

Test: Treehugger
Change-Id: I4c69be30bd9ac917113ee8e4d0425dd40753f66f
2023-06-13 01:25:06 +00:00
Liz Kammer
d78d6decd1 Add description to json module actions am: 6f42cdc60f am: 0467cc50a3 am: abd0e5d94a
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2620569

Change-Id: Ife52bcb2dacd9ad66d616f75193d2a6b81a510b8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-09 00:46:25 +00:00
Liz Kammer
abd0e5d94a Add description to json module actions am: 6f42cdc60f am: 0467cc50a3
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2620569

Change-Id: I73d9a18c6a1bcf27b8c926b6c0209eca6d834287
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-08 23:54:33 +00:00
Liz Kammer
0467cc50a3 Add description to json module actions am: 6f42cdc60f
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2620569

Change-Id: Ie0aa125f3c1f6966d83ab63f8ed9c0f0e222101c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-08 23:08:37 +00:00
Liz Kammer
6f42cdc60f Add description to json module actions
Test: m json-module-graph and spot check
Change-Id: Ia825cd6910d42ce7be34200f5d4a669f2d675727
2023-06-08 10:01:06 -04:00
Treehugger Robot
fa824cd1ff Merge "Add a function to check missing deps" am: 2259132d96 am: a8ce65d348 am: a16d1231f4
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2596965

Change-Id: I91f60789ff4771770dd9d30240c55d126708fe91
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-23 18:15:56 +00:00
Treehugger Robot
a16d1231f4 Merge "Add a function to check missing deps" am: 2259132d96 am: a8ce65d348
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2596965

Change-Id: I2a4d505e8ff2b2348a8ab0d66afeb681e037a6ce
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-23 17:31:50 +00:00
Treehugger Robot
a8ce65d348 Merge "Add a function to check missing deps" am: 2259132d96
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2596965

Change-Id: Ia459100e758a52d2b1a38afda3ee84c25335337b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-23 16:53:43 +00:00
Treehugger Robot
2259132d96 Merge "Add a function to check missing deps" 2023-05-23 16:07:01 +00:00
LaMont Jones
b2835befaa context: Allow running some singletons in parallel. am: 12ccb17d4e am: 22ff6aea90 am: 45d4f12ee1
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2592647

Change-Id: Ia9da283a76bdebe623b76c54bb0cc4699b970670
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-22 19:00:29 +00:00
LaMont Jones
97864c2fdc live_tracker: wrap add functions with mutex am: ff04c33f2a am: 5e8c2df08f am: cbc5498930
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2592646

Change-Id: I5b6646670c54eec967740c3d90576551a0a9eba9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-22 19:00:23 +00:00
LaMont Jones
45d4f12ee1 context: Allow running some singletons in parallel. am: 12ccb17d4e am: 22ff6aea90
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2592647

Change-Id: I9e4f66601381837039082df27819f325ede627b5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-22 18:14:12 +00:00
LaMont Jones
cbc5498930 live_tracker: wrap add functions with mutex am: ff04c33f2a am: 5e8c2df08f
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2592646

Change-Id: I5fbefbef2f13119dcfa4f014efaa381500349a18
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-22 18:14:06 +00:00
LaMont Jones
22ff6aea90 context: Allow running some singletons in parallel. am: 12ccb17d4e
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2592647

Change-Id: I0a6d414effcaaec16bf7f66f4343730b437e80de
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-22 17:11:33 +00:00
LaMont Jones
5e8c2df08f live_tracker: wrap add functions with mutex am: ff04c33f2a
Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2592646

Change-Id: Id2851dd5282c377aa8e7b54ea9f74adad5cc9755
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-22 17:11:27 +00:00
LaMont Jones
12ccb17d4e context: Allow running some singletons in parallel.
Many of the singletons are trivial and can be run in parallel, improving
the performance during analysis.

Bug: 281536768
Test: manual, presubmit
Change-Id: Ia63e4bc42a68e65dfa800e770982fa5826355fad
2023-05-19 19:03:08 +00:00
LaMont Jones
ff04c33f2a live_tracker: wrap add functions with mutex
There is already a mutex for the structure, but several add functions do
not use the mutex to protect access.

Bug: 281536768
Test: manual, presubmits
Change-Id: I34e95d8722b8e5fb753c099d7aedee5c4734715d
2023-05-19 18:01:16 +00:00
Liz Kammer
6af6061b12 Add a function to check missing deps
Test: go test Soong tests
Change-Id: If24e52b51a00bc45d6b6a2212d4e045bb36c598c
2023-05-18 09:52:46 -04:00