Details
-
Task
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
None
-
None
-
Storage Execution
Description
The loose atomic_load/atomic_store functions for shared_ptr are implemented over a global pool of 16 mutexes on Linux and a single mutex on Windows.
This leads to unrelated shared_ptr stores may use the same mutex and create contention for each other. It is better to protect this with our own mutex until we have std::atomic_shared_ptr in C++20.