From 4a3733c031b45b84df0984fadbf1bd3b15b5bd4c Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 18 Apr 2024 15:25:08 +0600 Subject: [PATCH] Test for saving on different thread --- source/libublsettingsui-gtk3.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index ee26db7..06638cd 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -170,6 +170,17 @@ template_debug_window *template_debugger_window_new(){ return window; } +void _yon_saving_threaded(char *final_command){ + FILE *file = popen(final_command,"r"); + int file_save; + config_str file_return = yon_config_load_file(file,&file_save); + file_return = yon_char_parsed_append(file_return,&file_save,final_command); + if (save_success_function) + { + save_success_function(save_success_argument,file_return,file_save); + } +} + void on_save_parameters(GtkWidget *self, template_saving_window *window){ GtkTreeIter iter; GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(window->ParametersTree)); @@ -199,14 +210,8 @@ void on_save_parameters(GtkWidget *self, template_saving_window *window){ yon_char_parsed_prepend_strings(commands,size,ubconfig_set_command(window->custom_save_path)); } char *final_command = yon_char_parsed_to_string(commands,size,";"); - FILE *file = popen(final_command,"r"); - int file_save; - config_str file_return = yon_config_load_file(file,&file_save); - file_return = yon_char_parsed_append(file_return,&file_save,final_command); - if (save_success_function) - { - save_success_function(save_success_argument,file_return,file_save); - } + pthread_t thread_id; + pthread_create(&thread_id, NULL, (void *)_yon_saving_threaded,final_command); yon_window_config_custom_window_set(GTK_WINDOW(window->Window),"SaveWindow"); on_subwindow_close(self);