From 39edf046d5a785bd79316c3671e843cd189546e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Sun, 24 May 2020 19:00:19 +0200 Subject: [PATCH] Additional fix for #148 ("Fix static initialization issues in pmr global resources") in set_default_resource --- src/global_resource.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/global_resource.cpp b/src/global_resource.cpp index a7f03f2..015531f 100644 --- a/src/global_resource.cpp +++ b/src/global_resource.cpp @@ -81,6 +81,10 @@ BOOST_CONTAINER_DECL memory_resource* set_default_resource(memory_resource* r) B //TO-DO: synchronizes-with part using atomics if(dlmalloc_global_sync_lock()){ memory_resource *previous = default_memory_resource; + if(!previous){ + //function called before main, default_memory_resource is not initialized yet + previous = new_delete_resource(); + } default_memory_resource = r ? r : new_delete_resource(); dlmalloc_global_sync_unlock(); return previous; @@ -96,7 +100,7 @@ BOOST_CONTAINER_DECL memory_resource* get_default_resource() BOOST_NOEXCEPT if(dlmalloc_global_sync_lock()){ memory_resource *current = default_memory_resource; if(!current){ - //function called before main, default_memory resource was not initialied yet + //function called before main, default_memory_resource is not initialized yet current = new_delete_resource(); } dlmalloc_global_sync_unlock();