Commit 770a1e8a authored by Dominik Charousset's avatar Dominik Charousset

Fix heap-use-after-free with logging enabled

parent bdd75627
...@@ -164,7 +164,7 @@ node_id::data::~data() { ...@@ -164,7 +164,7 @@ node_id::data::~data() {
} }
void node_id::data::stop() { void node_id::data::stop() {
CAF_LOG_TRACE(""); // nop
} }
// initializes singleton // initializes singleton
......
...@@ -79,26 +79,24 @@ void singletons::stop_singletons() { ...@@ -79,26 +79,24 @@ void singletons::stop_singletons() {
stop(s_scheduling_coordinator); stop(s_scheduling_coordinator);
CAF_LOGF_DEBUG("stop actor registry"); CAF_LOGF_DEBUG("stop actor registry");
stop(s_actor_registry); stop(s_actor_registry);
CAF_LOGF_DEBUG("stop type info map");
stop(s_uniform_type_info_map);
stop(s_node_id);
// dispose singletons, i.e., release memory // dispose singletons, i.e., release memory
CAF_LOGF_DEBUG("dispose scheduler");
dispose(s_scheduling_coordinator);
CAF_LOGF_DEBUG("dispose plugins"); CAF_LOGF_DEBUG("dispose plugins");
for (auto& plugin : s_plugins) { for (auto& plugin : s_plugins) {
dispose(plugin); dispose(plugin);
} }
CAF_LOGF_DEBUG("dispose registry");
dispose(s_actor_registry);
CAF_LOGF_DEBUG("dispose group manager"); CAF_LOGF_DEBUG("dispose group manager");
dispose(s_group_manager); dispose(s_group_manager);
CAF_LOGF_DEBUG("dispose map"); CAF_LOGF_DEBUG("dispose scheduler");
dispose(s_uniform_type_info_map); dispose(s_scheduling_coordinator);
CAF_LOGF_DEBUG("dispose registry");
dispose(s_actor_registry);
// final steps // final steps
CAF_LOGF_DEBUG("stop and dispose logger, bye"); CAF_LOGF_DEBUG("stop and dispose logger, bye");
stop(s_logger); stop(s_logger);
dispose(s_logger); dispose(s_logger);
stop(s_uniform_type_info_map);
dispose(s_uniform_type_info_map);
stop(s_node_id);
dispose(s_node_id); dispose(s_node_id);
} }
......
...@@ -728,7 +728,7 @@ uniform_type_info_map* uniform_type_info_map::create_singleton() { ...@@ -728,7 +728,7 @@ uniform_type_info_map* uniform_type_info_map::create_singleton() {
} }
void uniform_type_info_map::stop() { void uniform_type_info_map::stop() {
CAF_LOG_TRACE(""); // nop
} }
uniform_type_info_map::~uniform_type_info_map() { uniform_type_info_map::~uniform_type_info_map() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment