summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ydb/public/sdk/cpp/src/client/query/client.cpp10
-rw-r--r--ydb/public/sdk/cpp/src/client/table/impl/transaction.cpp8
2 files changed, 13 insertions, 5 deletions
diff --git a/ydb/public/sdk/cpp/src/client/query/client.cpp b/ydb/public/sdk/cpp/src/client/query/client.cpp
index e78d27c5b81..ec6e1a434c8 100644
--- a/ydb/public/sdk/cpp/src/client/query/client.cpp
+++ b/ydb/public/sdk/cpp/src/client/query/client.cpp
@@ -752,9 +752,11 @@ public:
}
TAsyncStatus Precommit() const {
+ auto self = shared_from_this();
+
TStatus status(EStatus::SUCCESS, {});
- for (auto& callback : PrecommitCallbacks) {
+ for (auto& callback : self->PrecommitCallbacks) {
if (!callback) {
continue;
}
@@ -775,7 +777,9 @@ public:
}
NThreading::TFuture<void> ProcessFailure() const {
- for (auto& callback : OnFailureCallbacks) {
+ auto self = shared_from_this();
+
+ for (auto& callback : self->OnFailureCallbacks) {
if (!callback) {
continue;
}
@@ -803,7 +807,7 @@ public:
co_return TCommitTransactionResult(TStatus(precommitResult));
}
- PrecommitCallbacks.clear();
+ self->PrecommitCallbacks.clear();
auto commitResult = co_await self->Session_.Client_->CommitTransaction(self->TxId_, settingsCopy, self->Session_);
diff --git a/ydb/public/sdk/cpp/src/client/table/impl/transaction.cpp b/ydb/public/sdk/cpp/src/client/table/impl/transaction.cpp
index 557fa1d89ca..27414bf9db0 100644
--- a/ydb/public/sdk/cpp/src/client/table/impl/transaction.cpp
+++ b/ydb/public/sdk/cpp/src/client/table/impl/transaction.cpp
@@ -11,9 +11,11 @@ TTransaction::TImpl::TImpl(const TSession& session, const std::string& txId)
TAsyncStatus TTransaction::TImpl::Precommit() const
{
+ auto self = shared_from_this();
+
TStatus status(EStatus::SUCCESS, {});
- for (auto& callback : PrecommitCallbacks) {
+ for (auto& callback : self->PrecommitCallbacks) {
if (!callback) {
continue;
}
@@ -35,7 +37,9 @@ TAsyncStatus TTransaction::TImpl::Precommit() const
NThreading::TFuture<void> TTransaction::TImpl::ProcessFailure() const
{
- for (auto& callback : OnFailureCallbacks) {
+ auto self = shared_from_this();
+
+ for (auto& callback : self->OnFailureCallbacks) {
if (!callback) {
continue;
}