aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOleg Doronin <dorooleg@yandex.ru>2024-07-18 12:37:47 +0200
committerGitHub <noreply@github.com>2024-07-18 13:37:47 +0300
commit302e20479e4fbcf9d57bd40b1cb330e84eab86f7 (patch)
tree4113dffaeed53631ac948318de05c3f4069a9902
parentb87f203cb2ff98907075602ab0e7fcbd2729c8ae (diff)
downloadydb-302e20479e4fbcf9d57bd40b1cb330e84eab86f7.tar.gz
DqPqReadActorTest has been fixed (#6785)
-rw-r--r--ydb/library/yql/providers/common/ut_helpers/dq_fake_ca.cpp12
-rw-r--r--ydb/library/yql/providers/common/ut_helpers/dq_fake_ca.h2
2 files changed, 10 insertions, 4 deletions
diff --git a/ydb/library/yql/providers/common/ut_helpers/dq_fake_ca.cpp b/ydb/library/yql/providers/common/ut_helpers/dq_fake_ca.cpp
index 8356bfd4df..17430bc285 100644
--- a/ydb/library/yql/providers/common/ut_helpers/dq_fake_ca.cpp
+++ b/ydb/library/yql/providers/common/ut_helpers/dq_fake_ca.cpp
@@ -55,7 +55,7 @@ void TFakeActor::InitAsyncInput(IDqComputeActorAsyncInput* dqAsyncInput, IActor*
DqAsyncInputAsActor = dqAsyncInputAsActor;
}
-void TFakeActor::Terminate() {
+void TFakeActor::Terminate(std::shared_ptr<std::atomic<bool>> done) {
if (DqAsyncInputActorId) {
DqAsyncInput->PassAway();
@@ -71,6 +71,7 @@ void TFakeActor::Terminate() {
DqAsyncOutput = nullptr;
DqAsyncOutputAsActor = nullptr;
}
+ done->store(true);
}
TFakeActor::TAsyncOutputCallbacks& TFakeActor::GetAsyncOutputCallbacks() {
@@ -101,9 +102,14 @@ TFakeCASetup::TFakeCASetup()
}
TFakeCASetup::~TFakeCASetup() {
- Execute([](TFakeActor& actor) {
- actor.Terminate();
+ auto shouldStop = std::make_shared<std::atomic<bool>>();
+ Execute([shouldStop](TFakeActor& actor) {
+ actor.Terminate(shouldStop);
});
+
+ while (!*shouldStop) {
+ Sleep(TDuration::MilliSeconds(200));
+ }
}
void TFakeCASetup::AsyncOutputWrite(const TWriteValueProducer valueProducer, TMaybe<NDqProto::TCheckpoint> checkpoint, bool finish) {
diff --git a/ydb/library/yql/providers/common/ut_helpers/dq_fake_ca.h b/ydb/library/yql/providers/common/ut_helpers/dq_fake_ca.h
index 8d50cff70b..c74c9bb201 100644
--- a/ydb/library/yql/providers/common/ut_helpers/dq_fake_ca.h
+++ b/ydb/library/yql/providers/common/ut_helpers/dq_fake_ca.h
@@ -119,7 +119,7 @@ public:
void InitAsyncOutput(IDqComputeActorAsyncOutput* dqAsyncOutput, IActor* dqAsyncOutputAsActor);
void InitAsyncInput(IDqComputeActorAsyncInput* dqAsyncInput, IActor* dqAsyncInputAsActor);
- void Terminate();
+ void Terminate(std::shared_ptr<std::atomic<bool>> done);
TAsyncOutputCallbacks& GetAsyncOutputCallbacks();
NKikimr::NMiniKQL::THolderFactory& GetHolderFactory();