X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;ds=sidebyside;f=fio.c;h=7b3a50b6cba12df253bed9517be46cdc950fde2d;hb=f227e2b61ffb099019e760b0c6bbacb17fa848c4;hp=9adc29aee47bbbfe9198a67458fc17c5d8b456b1;hpb=91c0e7c5de1b4413c5fab8f5746272d1aee10f78;p=fio.git diff --git a/fio.c b/fio.c index 9adc29ae..7b3a50b6 100644 --- a/fio.c +++ b/fio.c @@ -30,6 +30,10 @@ int main(int argc, char *argv[], char *envp[]) { + int ret = 1; + + compiletime_assert(TD_NR <= TD_ENG_FLAG_SHIFT, "TD_ENG_FLAG_SHIFT"); + if (initialize_fio(envp)) return 1; @@ -37,8 +41,17 @@ int main(int argc, char *argv[], char *envp[]) #error "No available clock source!" #endif + if (fio_server_create_sk_key()) + goto done; + if (parse_options(argc, argv)) - return 1; + goto done_key; + + /* + * line buffer stdout to avoid output lines from multiple + * threads getting mixed + */ + setvbuf(stdout, NULL, _IOLBF, 0); fio_time_init(); @@ -46,8 +59,14 @@ int main(int argc, char *argv[], char *envp[]) set_genesis_time(); if (fio_start_all_clients()) - return 1; - return fio_handle_clients(&fio_client_ops); + goto done_key; + ret = fio_handle_clients(&fio_client_ops); } else - return fio_backend(); + ret = fio_backend(NULL); + +done_key: + fio_server_destroy_sk_key(); +done: + deinitialize_fio(); + return ret; }