diff options
| author | Leandro Pereira <leandro@hardinfo.org> | 2009-12-28 01:53:23 -0200 | 
|---|---|---|
| committer | Leandro Pereira <leandro@hardinfo.org> | 2009-12-28 01:53:23 -0200 | 
| commit | d17631d82417bb18bbf7d9714c428cc235afcbd7 (patch) | |
| tree | a60b63e0e088c391fdafbeb9889240a54253a07e | |
| parent | 9ae04fea3f8be56d7ad017d71f2acad1c6e32db8 (diff) | |
More cancellable benchmark fixes
| -rw-r--r-- | hardinfo2/benchmark.c | 13 | 
1 files changed, 10 insertions, 3 deletions
| diff --git a/hardinfo2/benchmark.c b/hardinfo2/benchmark.c index 11ad9b01..64c87427 100644 --- a/hardinfo2/benchmark.c +++ b/hardinfo2/benchmark.c @@ -354,7 +354,7 @@ static gboolean do_benchmark_handler(GIOChannel *source,  static void do_benchmark(void (*benchmark_function)(void), int entry)  {      int old_priority = 0; - +          if (params.gui_running) {         gchar *argv[] = { params.argv0, "-b", entries[entry].name,                           "-m", "benchmark.so", "-a", NULL }; @@ -363,6 +363,7 @@ static void do_benchmark(void (*benchmark_function)(void), int entry)         GtkWidget *bench_dialog;         GtkWidget *bench_image;         BenchmarkDialog *benchmark_dialog; +       GSpawnFlags spawn_flags;         gchar *bench_status;         bench_status = g_strdup_printf("Benchmarking: <b>%s</b>.", entries[entry].name); @@ -393,10 +394,16 @@ static void do_benchmark(void (*benchmark_function)(void), int entry)         benchmark_dialog = g_new0(BenchmarkDialog, 1);         benchmark_dialog->dialog = bench_dialog;         benchmark_dialog->result = -1.0f; +        +       if (*params.argv0 != '/' || *params.argv0 != '.') { +          spawn_flags = G_SPAWN_SEARCH_PATH | G_SPAWN_STDERR_TO_DEV_NULL; +       } else { +          spawn_flags = G_SPAWN_STDERR_TO_DEV_NULL; +       }         if (g_spawn_async_with_pipes(NULL,                                      argv, NULL, -                                    G_SPAWN_STDERR_TO_DEV_NULL, +                                    spawn_flags,                                      NULL, NULL,                                      &bench_pid,                                      NULL, &bench_stdout, NULL, @@ -430,7 +437,7 @@ static void do_benchmark(void (*benchmark_function)(void), int entry)            return;         } - +                gtk_widget_destroy(bench_dialog);         g_free(benchmark_dialog);         shell_status_set_enabled(TRUE); | 
