Merge pull request #232 from georgthegreat/patch-1

Fix using pmr::polymorphic_allocator in pre-main
This commit is contained in:
Ion Gaztañaga
2022-12-11 18:45:37 +01:00
committed by GitHub

View File

@@ -127,17 +127,19 @@ namespace boost {
namespace container {
namespace pmr {
static std::atomic<memory_resource*> default_memory_resource =
ATOMIC_VAR_INIT(&boost::container::dtl::singleton_default<new_delete_resource_imp>::instance());
std::atomic<memory_resource*>& default_memory_resource_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
{
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
{ return default_memory_resource.load(std::memory_order_acquire); }
{ return default_memory_resource_instance().load(std::memory_order_acquire); }
#endif