diff options
author | Lee Clagett <code@leeclagett.com> | 2022-08-26 20:12:13 -0400 |
---|---|---|
committer | Lee Clagett <code@leeclagett.com> | 2022-08-26 20:12:13 -0400 |
commit | 3987827517dbf3ac80126002986269299adf9176 (patch) | |
tree | 799bedddbd1580bdac1d5498647adf21aaac48e8 | |
parent | Merge pull request #8497 (diff) | |
download | monero-3987827517dbf3ac80126002986269299adf9176.tar.xz |
Fix shared_ptr cycle in test_epee_connection.test_lifetime
-rw-r--r-- | tests/unit_tests/epee_boosted_tcp_server.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/tests/unit_tests/epee_boosted_tcp_server.cpp b/tests/unit_tests/epee_boosted_tcp_server.cpp index c08a86a5e..70f1b966f 100644 --- a/tests/unit_tests/epee_boosted_tcp_server.cpp +++ b/tests/unit_tests/epee_boosted_tcp_server.cpp @@ -212,11 +212,14 @@ TEST(test_epee_connection, test_lifetime) server.get_config_shared()->set_handler(new command_handler_t, &command_handler_t::destroy); io_context.post([&io_context, &work, &endpoint, &server]{ - auto scope_exit_handler = epee::misc_utils::create_scope_leave_handler([&work]{ + shared_state_ptr shared_state; + auto scope_exit_handler = epee::misc_utils::create_scope_leave_handler([&work, &shared_state]{ work.reset(); + if (shared_state) + shared_state->set_handler(nullptr, nullptr); }); - shared_state_ptr shared_state(std::make_shared<shared_state_t>()); + shared_state = std::make_shared<shared_state_t>(); shared_state->set_handler(new command_handler_t, &command_handler_t::destroy); auto create_connection = [&io_context, &endpoint, &shared_state] { |