From: Jens Axboe Date: Fri, 2 Mar 2012 13:27:17 +0000 (+0100) Subject: Start of support for auto-starting the backend X-Git-Tag: gfio-0.1~279 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=b9f3c7ed703f0f94476c5d9123034a45a4936517;hp=8663ea652b8ca7a368b39ef97e991180edebb57f Start of support for auto-starting the backend When running fio as a client only, you need the backend running on the system. Start adding support for letting gfio auto-fork the backend, if it isn't already running. Signed-off-by: Jens Axboe --- diff --git a/gfio.c b/gfio.c index 3c25c4e6..e92ab031 100644 --- a/gfio.c +++ b/gfio.c @@ -526,9 +526,11 @@ void report_error(GError *error) } } -static int get_connection_details(char **host, int *port, int *type) +static int get_connection_details(char **host, int *port, int *type, + int *server_start) { GtkWidget *dialog, *box, *vbox, *hentry, *hbox, *frame, *pentry, *combo; + GtkWidget *button; char *typeentry; dialog = gtk_dialog_new_with_buttons("Connection details", @@ -575,6 +577,19 @@ static int get_connection_details(char **host, int *port, int *type) gtk_container_add(GTK_CONTAINER(hbox), combo); + frame = gtk_frame_new("Options"); + gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5); + box = gtk_vbox_new(FALSE, 10); + gtk_container_add(GTK_CONTAINER(frame), box); + + hbox = gtk_hbox_new(TRUE, 4); + gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); + + button = gtk_check_button_new_with_label("Auto-spawn fio backend"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), 1); + gtk_widget_set_tooltip_text(button, "When running fio locally, it is necessary to have the backend running on the same system. If this is checked, gfio will start the backend automatically for you if it isn't already running."); + gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 6); + gtk_widget_show_all(dialog); if (gtk_dialog_run(GTK_DIALOG(dialog)) != GTK_RESPONSE_ACCEPT) { @@ -594,6 +609,8 @@ static int get_connection_details(char **host, int *port, int *type) *type = Fio_client_socket; g_free(typeentry); + *server_start = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)); + gtk_widget_destroy(dialog); return 0; } @@ -604,7 +621,7 @@ static void file_open(GtkWidget *w, gpointer data) GSList *filenames, *fn_glist; GtkFileFilter *filter; char *host; - int port, type; + int port, type, server_start; dialog = gtk_file_chooser_dialog_new("Open File", GTK_WINDOW(ui.window), @@ -630,7 +647,7 @@ static void file_open(GtkWidget *w, gpointer data) gtk_widget_destroy(dialog); - if (get_connection_details(&host, &port, &type)) + if (get_connection_details(&host, &port, &type, &server_start)) goto err; filenames = fn_glist;