diff --git a/c/src/ml-api-service-training-offloading.c b/c/src/ml-api-service-training-offloading.c index 13722432..c8a8c1bb 100644 --- a/c/src/ml-api-service-training-offloading.c +++ b/c/src/ml-api-service-training-offloading.c @@ -513,6 +513,7 @@ _training_offloading_services_request (ml_service_s * mls) error: g_free (service_name); + g_free (pipeline); g_free (transfer_data); g_free (contents); g_list_free (list); @@ -569,6 +570,11 @@ _training_offloading_check_received_data (ml_training_services_s * training_s) g_return_val_if_fail (training_s != NULL, FALSE); + if (training_s->received_thread) { + g_thread_join (training_s->received_thread); + training_s->received_thread = NULL; + } + training_s->received_thread = g_thread_new ("check_received_file", _check_received_data_thread, training_s); @@ -709,6 +715,7 @@ _ml_service_training_offloading_prepare_receiver (ml_service_s * mls, pipe = json_object_get_object_member (pipeline_obj, "pipeline"); if (json_object_has_member (pipe, "description")) { + g_clear_pointer (&training_s->receiver_pipe, g_free); training_s->receiver_pipe = g_strdup (_ml_service_get_json_string_member (pipe, "description")); } else { @@ -809,6 +816,7 @@ _ml_service_training_offloading_process_received_data (ml_service_s * mls, if (training_s->type == ML_TRAINING_OFFLOADING_TYPE_RECEIVER) { if (service_type == ML_SERVICE_OFFLOADING_TYPE_PIPELINE_RAW) { + g_clear_pointer (&training_s->receiver_pipe_json_str, g_free); training_s->receiver_pipe_json_str = g_strdup (data); _ml_logd ("Received JSON string pipeline:%s", training_s->receiver_pipe_json_str); @@ -821,6 +829,7 @@ _ml_service_training_offloading_process_received_data (ml_service_s * mls, _ml_error_report_return (ret, "Failed to get name while processing the ml-offloading service."); } + g_clear_pointer (&training_s->trained_model_path, g_free); training_s->trained_model_path = g_build_path (G_DIR_SEPARATOR_S, dir_path, name, NULL); _ml_logd ("Reply: name:%s, received trained_model:%s", name,