From ac1dbd6222538aa2de709dbe9306d739306526fe Mon Sep 17 00:00:00 2001 From: Sara Date: Wed, 5 Nov 2025 16:47:34 +0100 Subject: [PATCH] fix: replaced has_conclusion with check for full --- modules/you_done_it/client_node.cpp | 6 +++--- modules/you_done_it/ydi_client.cpp | 12 ++++++++++++ modules/you_done_it/ydi_client.h | 1 - 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/modules/you_done_it/client_node.cpp b/modules/you_done_it/client_node.cpp index 1259113a..e472e1f4 100644 --- a/modules/you_done_it/client_node.cpp +++ b/modules/you_done_it/client_node.cpp @@ -37,9 +37,9 @@ void ClientNode::process() { reveal_backlog(); } } - bool const new_has_conclusion{ ydi::client::receive::has_conclusion() }; - if (new_has_conclusion != this->conclusion.is_full()) { - this->conclusion = ydi::client::receive::conclusion(); + FixedVector &conclusion{ ydi::client::receive::conclusion() }; + if (conclusion.is_full() != this->conclusion.is_full()) { + this->conclusion = conclusion; emit_signal(sig_conclusion_received, this->conclusion[0], this->conclusion[1], this->conclusion[2]); } } diff --git a/modules/you_done_it/ydi_client.cpp b/modules/you_done_it/ydi_client.cpp index 90e06016..de15c856 100644 --- a/modules/you_done_it/ydi_client.cpp +++ b/modules/you_done_it/ydi_client.cpp @@ -146,6 +146,18 @@ NetworkData::ConnectionStatus status() { } } +namespace receive { +FixedVector &conclusion() { + static FixedVector thread_safe_conclusion{}; + if (connection) { + thread_safe_conclusion.clear(); + } else { + std::scoped_lock lock{ connection->mtx }; + thread_safe_conclusion = connection->conclusion; + } + return thread_safe_conclusion; +} +} //namespace receive namespace send { void reveal_clue(NetworkData::ClueID id) { if (connection) { diff --git a/modules/you_done_it/ydi_client.h b/modules/you_done_it/ydi_client.h index 5d86bde5..538b9126 100644 --- a/modules/you_done_it/ydi_client.h +++ b/modules/you_done_it/ydi_client.h @@ -10,7 +10,6 @@ void disconnect(); NetworkData::ConnectionStatus status(); namespace receive { FixedVector &conclusion(); -bool has_conclusion(); } //namespace receive namespace send { void reveal_clue(NetworkData::ClueID id);