From 33471189b687c742a4f65fc9cd74e6c3b4fc1339 Mon Sep 17 00:00:00 2001 From: terukazu inoue Date: Fri, 12 May 2023 18:24:47 +0900 Subject: [PATCH] fix: rare double free crash when running in parallel --- include/another-rxcpp/internal/tools/stream_controller.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/another-rxcpp/internal/tools/stream_controller.h b/include/another-rxcpp/internal/tools/stream_controller.h index 3c9082f..4a9b324 100644 --- a/include/another-rxcpp/internal/tools/stream_controller.h +++ b/include/another-rxcpp/internal/tools/stream_controller.h @@ -25,7 +25,7 @@ template class stream_controller { serial_type serial_; unsubscriber_map unsubscribers_; on_finalizes_t on_finalizes_; - inner(const subscriber_type& sbsc) noexcept : subscriber_(sbsc), serial_(0) {} + inner(subscriber_type sbsc) noexcept : subscriber_(sbsc), serial_(0) {} }; mutable std::shared_ptr inner_; @@ -36,7 +36,7 @@ template class stream_controller { stream_controller() = delete; public: - stream_controller(const subscriber_type& subscriber) noexcept { + stream_controller(subscriber_type subscriber) noexcept { inner_ = std::make_shared(subscriber); subscriber.set_on_unsubscribe([inner = inner_]{ stream_controller(inner).finalize();