ResultKeyMemo declared std::atomic<std::shared_ptr<...>>. libc++ has no
atomic<shared_ptr> specialization, so with Apple clang the recompiler
headers stop at std::atomic's trivially-copyable static assertion
(request_serializer_tests in the macOS relinker build). The memo now uses
AtomicSharedPtr from libc, which is that specialization where the library
provides it and a locked shared_ptr with the same load and store otherwise.
The header joins the shader disk cache key's sources, and
request_serializer_tests gets core/libs on its include path.
shader_cache_runtime_sources configures a CMake fixture several times with a
15 s limit per configure and 180 s for the whole test. On a loaded machine a
configure takes longer than that: under a parallel build (load average ~12 on
WSL2 Ubuntu) the test timed out in 2 of 2 runs, and on an idle Windows machine
it needs about 115 s of the 180 s. Raise the limits to 120 s per configure,
60 s per version query and 600 s for the test.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>