PR libstdc++/86846 Alternative to pointer-width atomics
commita64e72607dcb77cf7e923100cc6c71651e2da433
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Aug 2018 13:13:37 +0000 (14 13:13 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Aug 2018 13:13:37 +0000 (14 13:13 +0000)
treede42754637ea28cd22651f0f584d9ed38e54caa3
parentf2b443b321f8a6d4a9dc82d81761046e5fe19870
PR libstdc++/86846 Alternative to pointer-width atomics

Define a class using std::mutex for when std::atomic<memory_resource*>
cannot be used to implement the default memory resource.

When std::mutex constructor is not constexpr the constant_init trick
won't work, so just define a global and use init_priority for it. The
compiler warns about using reserved priority, so put the definition in a
header file using #pragma GCC system_header to suppress the warning.

PR libstdc++/86846
* src/c++17/default_resource.h: New file, defining default_res.
* src/c++17/memory_resource.cc [ATOMIC_POINTER_LOCK_FREE != 2]
(atomic_mem_res): Define alternative for atomic<memory_resource*>
using a mutex instead of atomics.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263536 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/src/c++17/default_resource.h [new file with mode: 0644]
libstdc++-v3/src/c++17/memory_resource.cc