[LinearAlgebra] Cache `lbt_get_config()` result (#44383)
* [LinearAlgebra] Cache `lbt_get_config()` result
In the event that users want to call `lbt_get_config()` multiple times
(e.g. for runtime checks of which BLAS vendor is providing a symbol),
let's cache the value and clear it only when someone calls something
that would cause the config itself to change.
* Use double-checked locking to cache LBT config (#44387)
* Use double-checked locking to cache LBT config
* Use Any field for lock-free load and store
* Revert "Use Any field for lock-free load and store"
This reverts commit c6acae5c9b460cc4c7807e612712b92adfaebb61.
The compiler already handled it:
https://github.com/JuliaLang/julia/pull/44387#discussion_r816730294
* (rerun)
* Add lock as a field of ConfigCache
Co-authored-by: Takafumi Arakaki <aka.tkf@gmail.com>