X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.c;h=bafbd48e7ae35c00782af205308ce89a8c665d4e;hp=72c7c8709e5296043d6522df320c29c7163e2e98;hb=c08f9fe23b0f257f914b2d9e0e4f1117418e5da6;hpb=a569b45f68ebaa93fbbaca424dc827f4bbc5d655 diff --git a/fio.c b/fio.c index 72c7c870..bafbd48e 100644 --- a/fio.c +++ b/fio.c @@ -30,15 +30,36 @@ int main(int argc, char *argv[], char *envp[]) { + int ret = 1; + if (initialize_fio(envp)) return 1; + +#if !defined(CONFIG_GETTIMEOFDAY) && !defined(CONFIG_CLOCK_GETTIME) +#error "No available clock source!" +#endif + if (parse_options(argc, argv)) - return 1; + goto done; + + /* + * line buffer stdout to avoid output lines from multiple + * threads getting mixed + */ + setvbuf(stdout, NULL, _IOLBF, 0); fio_time_init(); - if (nr_clients) - return fio_handle_clients(); - else - return fio_backend(); + if (nr_clients) { + set_genesis_time(); + + if (fio_start_all_clients()) + goto done; + ret = fio_handle_clients(&fio_client_ops); + } else + ret = fio_backend(); + +done: + deinitialize_fio(); + return ret; }