From bcc4dcfb2f86c3709e5e8cfd44fb7dd837753713 Mon Sep 17 00:00:00 2001 From: erobot Date: Tue, 25 Nov 2025 12:04:07 +0800 Subject: [PATCH 1/6] fix WaitForCallbackValue --- lib/Utils.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Utils.h b/lib/Utils.h index 5aab7159..af374f29 100644 --- a/lib/Utils.h +++ b/lib/Utils.h @@ -38,9 +38,9 @@ struct WaitForCallback { template struct WaitForCallbackValue { - Promise& m_promise; + Promise m_promise; - WaitForCallbackValue(Promise& promise) : m_promise(promise) {} + WaitForCallbackValue(Promise promise) : m_promise(promise) {} void operator()(Result result, const T& value) { if (result == ResultOk) { From 777629f0b9ca8935de326dc13b5ef4d3784f61c5 Mon Sep 17 00:00:00 2001 From: erobot Date: Tue, 25 Nov 2025 14:15:48 +0800 Subject: [PATCH 2/6] Revert "fix WaitForCallbackValue" This reverts commit bcc4dcfb2f86c3709e5e8cfd44fb7dd837753713. --- lib/Utils.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Utils.h b/lib/Utils.h index af374f29..5aab7159 100644 --- a/lib/Utils.h +++ b/lib/Utils.h @@ -38,9 +38,9 @@ struct WaitForCallback { template struct WaitForCallbackValue { - Promise m_promise; + Promise& m_promise; - WaitForCallbackValue(Promise promise) : m_promise(promise) {} + WaitForCallbackValue(Promise& promise) : m_promise(promise) {} void operator()(Result result, const T& value) { if (result == ResultOk) { From 9d3d80d2f30fd79acd67188dc460e5de934da7d5 Mon Sep 17 00:00:00 2001 From: erobot Date: Tue, 25 Nov 2025 14:54:26 +0800 Subject: [PATCH 3/6] Reapply "fix WaitForCallbackValue" This reverts commit 777629f0b9ca8935de326dc13b5ef4d3784f61c5. --- lib/Utils.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Utils.h b/lib/Utils.h index 5aab7159..af374f29 100644 --- a/lib/Utils.h +++ b/lib/Utils.h @@ -38,9 +38,9 @@ struct WaitForCallback { template struct WaitForCallbackValue { - Promise& m_promise; + Promise m_promise; - WaitForCallbackValue(Promise& promise) : m_promise(promise) {} + WaitForCallbackValue(Promise promise) : m_promise(promise) {} void operator()(Result result, const T& value) { if (result == ResultOk) { From 7d5c163df2f9bac8d7ea0bca738a66c0b38cfd8b Mon Sep 17 00:00:00 2001 From: erobot Date: Tue, 25 Nov 2025 15:28:26 +0800 Subject: [PATCH 4/6] change ReaderImpl --- lib/ReaderImpl.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/ReaderImpl.cc b/lib/ReaderImpl.cc index 7fa7e8b9..81aefb98 100644 --- a/lib/ReaderImpl.cc +++ b/lib/ReaderImpl.cc @@ -105,14 +105,15 @@ void ReaderImpl::start(const MessageId& startMessageId, } auto self = shared_from_this(); consumer_->getConsumerCreatedFuture().addListener( - [this, self, callback](Result result, const ConsumerImplBaseWeakPtr& weakConsumerPtr) { + [this, self, callback, readerCreatedCallback = readerCreatedCallback_](Result result, const ConsumerImplBaseWeakPtr& weakConsumerPtr) { if (result == ResultOk) { callback(weakConsumerPtr); - readerCreatedCallback_(result, Reader(self)); + readerCreatedCallback(result, Reader(self)); } else { - readerCreatedCallback_(result, {}); + readerCreatedCallback(result, {}); } }); + readerCreatedCallback_ = nullptr; consumer_->start(); } From f7149ae04184bc958615c4d69114e59fb6e830a3 Mon Sep 17 00:00:00 2001 From: erobot Date: Tue, 25 Nov 2025 15:36:30 +0800 Subject: [PATCH 5/6] fix --- lib/ReaderImpl.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ReaderImpl.cc b/lib/ReaderImpl.cc index 81aefb98..2bc7548b 100644 --- a/lib/ReaderImpl.cc +++ b/lib/ReaderImpl.cc @@ -105,7 +105,8 @@ void ReaderImpl::start(const MessageId& startMessageId, } auto self = shared_from_this(); consumer_->getConsumerCreatedFuture().addListener( - [this, self, callback, readerCreatedCallback = readerCreatedCallback_](Result result, const ConsumerImplBaseWeakPtr& weakConsumerPtr) { + [this, self, callback, readerCreatedCallback = readerCreatedCallback_]( + Result result, const ConsumerImplBaseWeakPtr& weakConsumerPtr) { if (result == ResultOk) { callback(weakConsumerPtr); readerCreatedCallback(result, Reader(self)); From d9f248cbcb0a5c4a3aa08736672dc76ea8baf06a Mon Sep 17 00:00:00 2001 From: erobot Date: Tue, 25 Nov 2025 15:53:55 +0800 Subject: [PATCH 6/6] fix --- lib/ReaderImpl.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/ReaderImpl.cc b/lib/ReaderImpl.cc index 2bc7548b..f489013b 100644 --- a/lib/ReaderImpl.cc +++ b/lib/ReaderImpl.cc @@ -104,9 +104,10 @@ void ReaderImpl::start(const MessageId& startMessageId, consumer_ = consumerImpl; } auto self = shared_from_this(); + auto readerCreatedCallback = readerCreatedCallback_; consumer_->getConsumerCreatedFuture().addListener( - [this, self, callback, readerCreatedCallback = readerCreatedCallback_]( - Result result, const ConsumerImplBaseWeakPtr& weakConsumerPtr) { + [this, self, callback, readerCreatedCallback](Result result, + const ConsumerImplBaseWeakPtr& weakConsumerPtr) { if (result == ResultOk) { callback(weakConsumerPtr); readerCreatedCallback(result, Reader(self));