Skip to content

Commit e9df014

Browse files
committed
Clearing after new porblem added
Signed-off-by: zesk1999 <zesk1999@gmail.com>
1 parent 7455a14 commit e9df014

3 files changed

Lines changed: 23 additions & 31 deletions

File tree

src/cpp/Engine.cpp

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,15 +1283,20 @@ void Engine::config_request(
12831283
const QJsonObject& json_obj,
12841284
std::function<void(const QJsonObject&)> callback)
12851285
{
1286-
int node_id = json_obj["node_id"].toInt();
1286+
static std::atomic<int> request_counter{0};
1287+
int request_id = ++request_counter;
12871288

1288-
// Enqueue callback for this node_id
1289-
config_callback_queue_[node_id].push_back(callback);
1289+
// Enqueue callback keyed by unique request_id, not node_id, so concurrent
1290+
// requests to the same node cannot steal each other's callbacks.
1291+
config_callback_queue_[request_id].push_back(callback);
1292+
1293+
QJsonObject req_obj = json_obj;
1294+
req_obj["request_id"] = request_id;
12901295

12911296
REST_requester* requester = new REST_requester(
12921297
std::bind(&Engine::config_response, this, std::placeholders::_1, std::placeholders::_2),
12931298
REST_requester::RequestType::REQUEST_CONFIG,
1294-
json_obj);
1299+
req_obj);
12951300

12961301
{
12971302
std::lock_guard<std::mutex> lock(requesters_mutex_);
@@ -1306,18 +1311,22 @@ void Engine::config_response(
13061311
if (!json_obj.empty())
13071312
{
13081313
QJsonObject response_obj = json_obj["response"].toObject();
1309-
int node_id = response_obj["node_id"].toInt();
1314+
int request_id = response_obj["request_id"].toInt();
13101315

1311-
auto it = config_callback_queue_.find(node_id);
1316+
auto it = config_callback_queue_.find(request_id);
13121317
if (it != config_callback_queue_.end() && !it->second.empty())
13131318
{
13141319
auto cb = it->second.front();
13151320
it->second.pop_front();
13161321
cb(json_obj);
1322+
if (it->second.empty())
1323+
{
1324+
config_callback_queue_.erase(it);
1325+
}
13171326
}
13181327
else
13191328
{
1320-
std::cout << "WARNING config_response node_id=" << node_id
1329+
std::cout << "WARNING config_response request_id=" << request_id
13211330
<< " but no queued callback" << std::endl;
13221331
}
13231332
}

src/qml/main.qml

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -909,29 +909,7 @@ Window {
909909
onGo_back_empty_input: {
910910
var defInstance = _screenInst[ScreenManager.Screens.Definition];
911911
if (defInstance !== undefined) {
912-
defInstance.__problem_short_description = "";
913-
defInstance.__modality = "";
914-
defInstance.__metric = "";
915-
defInstance.__problem_definition = "";
916-
defInstance.__inputs = "";
917-
defInstance.__outputs = "";
918-
defInstance.__minimum_samples = 1;
919-
defInstance.__maximum_samples = 1;
920-
defInstance.__optimize_carbon_footprint_auto = false;
921-
defInstance.__goal = "";
922-
defInstance.__types = defInstance.__types;
923-
defInstance.__optimize_carbon_footprint_manual = false;
924-
defInstance.__previous_iteration = 0;
925-
defInstance.__desired_carbon_footprint = 0.0;
926-
defInstance.__max_memory_footprint = 0;
927-
// defInstance.__hardware_required = "PIM-AI-1chip";
928-
defInstance.__geo_location_continent = "";
929-
defInstance.__geo_location_region = "";
930-
defInstance.__extra_data = "";
931-
defInstance.__previous_problem_id = 0;
932-
defInstance.__num_outputs = 1;
933-
defInstance.__model_selected = "";
934-
defInstance.__model_selected_copy = "";
912+
defInstance.clear_all();
935913
}
936914
main_window.load_screen(ScreenManager.Screens.Definition)
937915
}

src/qml/screens/SmlProblemDefinitionScreen.qml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1054,7 +1054,7 @@ Item
10541054
{
10551055
id: num_outputs_header
10561056
text_kind: SmlText.TextKind.Header_3
1057-
text_value: "outputs models"
1057+
text_value: "output models"
10581058
color: num_outputs_input.focus ? Settings.app_color_blue : Settings.app_color_green_1
10591059
anchors
10601060
{
@@ -1739,6 +1739,11 @@ Item
17391739
root.__num_outputs = 1
17401740
root.__model_selected = ""
17411741
root.__model_selected_copy = ""
1742+
root.__dataset_description = ""
1743+
root.__dataset_topic = ""
1744+
root.__dataset_profile = ""
1745+
root.__dataset_keywords = ""
1746+
root.__dataset_applications = ""
17421747

17431748
// Reset visible widgets explicitly
17441749
problem_short_description_input.text = ""

0 commit comments

Comments
 (0)