From 437377e14010f4443bd0fd1b40c4e75885520d7d Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Sat, 1 Oct 2011 08:31:30 -0600 Subject: [PATCH] server: quit client when job run is complete Signed-off-by: Jens Axboe --- client.c | 4 ++++ server.c | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/client.c b/client.c index dfc172ea..b47624b5 100644 --- a/client.c +++ b/client.c @@ -128,6 +128,10 @@ int fio_handle_clients(void) free(cmd); continue; } + if (cmd->opcode == FIO_NET_CMD_QUIT) { + free(cmd); + break; + } if (cmd->opcode != FIO_NET_CMD_TEXT) { printf("non text: %d\n", cmd->opcode); free(cmd); diff --git a/server.c b/server.c index fe93ffbe..e7b77417 100644 --- a/server.c +++ b/server.c @@ -189,6 +189,11 @@ static int nak_command(int sk, struct fio_net_cmd *cmd) } #endif +static int send_quit_command(void) +{ + return send_simple_command(server_fd, FIO_NET_CMD_QUIT, 0); +} + static int handle_cur_job(struct fio_net_cmd *cmd, int done) { unsigned int left = job_max_len - job_cur_len; @@ -205,6 +210,7 @@ static int handle_cur_job(struct fio_net_cmd *cmd, int done) if (done) { parse_jobs_ini(job_buf, 1, 0); ret = exec_run(); + send_quit_command(); reset_fio_state(); free(job_buf); job_buf = NULL; -- 2.25.1