Merge branch 'verify_trigger' of https://github.com/sitsofe/fio
authorJens Axboe <axboe@kernel.dk>
Mon, 11 Sep 2017 14:29:41 +0000 (08:29 -0600)
committerJens Axboe <axboe@kernel.dk>
Mon, 11 Sep 2017 14:29:41 +0000 (08:29 -0600)
backend.c
server.c

index d2675b43cfd3b9900636ecb76ea8c96f82817352..6198c3d9f8c7d445713c6a70fcd91b0f1ff03807 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -1391,6 +1391,8 @@ static bool keep_running(struct thread_data *td)
 
        if (td->done)
                return false;
+       if (td->terminate)
+               return false;
        if (td->o.time_based)
                return true;
        if (td->o.loops) {
@@ -2042,7 +2044,10 @@ static bool __check_trigger_file(void)
 static bool trigger_timedout(void)
 {
        if (trigger_timeout)
-               return time_since_genesis() >= trigger_timeout;
+               if (time_since_genesis() >= trigger_timeout) {
+                       trigger_timeout = 0;
+                       return true;
+               }
 
        return false;
 }
@@ -2051,7 +2056,7 @@ void exec_trigger(const char *cmd)
 {
        int ret;
 
-       if (!cmd)
+       if (!cmd || cmd[0] == '\0')
                return;
 
        ret = system(cmd);
index a640fe3a38069b71ff219ef5af5d60de591c05b9..2c08c3e12b26ea3bbe19a15f1cac95cfaba134d4 100644 (file)
--- a/server.c
+++ b/server.c
@@ -970,6 +970,7 @@ static int handle_trigger_cmd(struct fio_net_cmd *cmd)
        } else
                fio_net_queue_cmd(FIO_NET_CMD_VTRIGGER, rep, sz, NULL, SK_F_FREE | SK_F_INLINE);
 
+       fio_terminate_threads(TERMINATE_ALL);
        exec_trigger(buf);
        return 0;
 }