From f6657febc457a8ecb9375d263b6d40b3c737bc41 Mon Sep 17 00:00:00 2001 From: Eric Voskuil Date: Sat, 3 Oct 2026 18:45:47 -0400 Subject: [PATCH 1/2] Release broadcast refs before awaiting the race (test hang). --- test/sessions/session.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/sessions/session.cpp b/test/sessions/session.cpp index bc1deb1d..a9ebadf5 100644 --- a/test/sessions/session.cpp +++ b/test/sessions/session.cpp @@ -254,9 +254,9 @@ struct session_broadcast_setup_fixture promise.set_value(ec); }; - const auto race = std::make_shared(handler); - const auto message = std::make_shared(race, sink, group); - broadcaster->broadcast(message, 0); + // The race completes upon release of the last message reference. + broadcaster->broadcast(std::make_shared( + std::make_shared(handler), sink, group), 0); return promise.get_future().get(); } @@ -271,10 +271,10 @@ struct session_broadcast_setup_fixture promise.set_value(ec); }; - const auto race = std::make_shared(handler); - const auto message = std::make_shared(race, - network::error::channel_dropped, identifier); - broadcaster->broadcast(message, 0); + // The race completes upon match, or release of the last reference. + broadcaster->broadcast(std::make_shared( + std::make_shared(handler), + network::error::channel_dropped, identifier), 0); return promise.get_future().get(); } }; From 301ea472af3bb5c9c2c1baeb65f8f2459da24c79 Mon Sep 17 00:00:00 2001 From: Eric Voskuil Date: Sat, 3 Oct 2026 04:25:12 -0400 Subject: [PATCH 2/2] Fix estimator leak on initialization failure (reset, not release). --- src/chasers/chaser_estimate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chasers/chaser_estimate.cpp b/src/chasers/chaser_estimate.cpp index 46da0282..940358f4 100644 --- a/src/chasers/chaser_estimate.cpp +++ b/src/chasers/chaser_estimate.cpp @@ -182,7 +182,7 @@ void chaser_estimate::do_initialize(header_t) NOEXCEPT if (!estimator_->initialize(stopping_, archive(), horizon)) { fault(error::estimates_initialize); - estimator_.release(); + estimator_.reset(); return; }