From b7cfb2e18ba4815aa74eaf5d8637d466a51b712d Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Mon, 12 Mar 2012 07:47:27 +0100 Subject: [PATCH] Only send job options once If we have numjobs=x set with x higher than 1, the CLI client prints the first and last job. But for the GUI, we just want the one notification of an added job. This fixes the case where we seem to have loaded two jobs, but it is just one. Signed-off-by: Jens Axboe --- init.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/init.c b/init.c index e3d37380..3d90c8a5 100644 --- a/init.c +++ b/init.c @@ -735,7 +735,8 @@ int ioengine_load(struct thread_data *td) * to make sure we don't have conflicts, and initializes various * members of td. */ -static int add_job(struct thread_data *td, const char *jobname, int job_add_num) +static int add_job(struct thread_data *td, const char *jobname, int job_add_num, + int recursed) { unsigned int i; char fname[PATH_MAX]; @@ -848,7 +849,7 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num) if (!terse_output) { if (!job_add_num) { - if (is_backend) + if (is_backend && !recursed) fio_server_send_add_job(&td->o, td->io_ops->name); if (!strcmp(td->io_ops->name, "cpuio")) { @@ -905,7 +906,7 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num) job_add_num = numjobs - 1; - if (add_job(td_new, jobname, job_add_num)) + if (add_job(td_new, jobname, job_add_num, 1)) goto err; } @@ -930,7 +931,7 @@ void add_job_opts(const char **o) if (!strncmp(o[i], "name", 4)) { in_global = 0; if (td) - add_job(td, jobname, 0); + add_job(td, jobname, 0, 0); td = NULL; sprintf(jobname, "%s", o[i] + 5); } @@ -949,7 +950,7 @@ void add_job_opts(const char **o) } if (td) - add_job(td, jobname, 0); + add_job(td, jobname, 0, 0); } static int skip_this_section(const char *name) @@ -1131,7 +1132,7 @@ int parse_jobs_ini(char *file, int is_buf, int stonewall_flag) for (i = 0; i < num_opts; i++) log_info("--%s ", opts[i]); - ret = add_job(td, name, 0); + ret = add_job(td, name, 0, 0); } else { log_err("fio: job %s dropped\n", name); put_job(td); @@ -1497,7 +1498,7 @@ int parse_cmd_line(int argc, char *argv[]) char *val = optarg; if (!strncmp(opt, "name", 4) && td) { - ret = add_job(td, td->o.name ?: "fio", 0); + ret = add_job(td, td->o.name ?: "fio", 0, 0); if (ret) return 0; td = NULL; @@ -1601,7 +1602,7 @@ int parse_cmd_line(int argc, char *argv[]) if (td) { if (!ret) - ret = add_job(td, td->o.name ?: "fio", 0); + ret = add_job(td, td->o.name ?: "fio", 0, 0); } while (!ret && optind < argc) { -- 2.25.1