mirror of
https://github.com/boostorg/container.git
synced 2025-08-02 22:14:26 +02:00
Merge pull request #232 from georgthegreat/patch-1
Fix using pmr::polymorphic_allocator in pre-main
This commit is contained in:
@@ -127,17 +127,19 @@ namespace boost {
|
|||||||
namespace container {
|
namespace container {
|
||||||
namespace pmr {
|
namespace pmr {
|
||||||
|
|
||||||
static std::atomic<memory_resource*> default_memory_resource =
|
std::atomic<memory_resource*>& default_memory_resource_instance() {
|
||||||
ATOMIC_VAR_INIT(&boost::container::dtl::singleton_default<new_delete_resource_imp>::instance());
|
static std::atomic<memory_resource*> instance = new_delete_resource();
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_CONTAINER_DECL memory_resource* set_default_resource(memory_resource* r) BOOST_NOEXCEPT
|
BOOST_CONTAINER_DECL memory_resource* set_default_resource(memory_resource* r) BOOST_NOEXCEPT
|
||||||
{
|
{
|
||||||
memory_resource *const res = r ? r : new_delete_resource();
|
memory_resource *const res = r ? r : new_delete_resource();
|
||||||
return default_memory_resource.exchange(res, std::memory_order_acq_rel);
|
return default_memory_resource_instance().exchange(res, std::memory_order_acq_rel);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_CONTAINER_DECL memory_resource* get_default_resource() BOOST_NOEXCEPT
|
BOOST_CONTAINER_DECL memory_resource* get_default_resource() BOOST_NOEXCEPT
|
||||||
{ return default_memory_resource.load(std::memory_order_acquire); }
|
{ return default_memory_resource_instance().load(std::memory_order_acquire); }
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user