diff options
| -rw-r--r-- | ydb/public/sdk/cpp/src/client/query/client.cpp | 10 | ||||
| -rw-r--r-- | ydb/public/sdk/cpp/src/client/table/impl/transaction.cpp | 8 |
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; } |
