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 /hardinfo2 | |
parent | 9ae04fea3f8be56d7ad017d71f2acad1c6e32db8 (diff) |
More cancellable benchmark fixes
Diffstat (limited to 'hardinfo2')
-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); |