X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.c;h=4a02f2ebee198584e477f5e6b8749447c6f94463;hb=8de43fd22302237a2b35515ff869fde514dfc76d;hp=1aba82ded2aed00396f9b76e9926000de8347f54;hpb=eb7ccf38bf2e9208b593d021c50e9ad2ec0781ea;p=fio.git diff --git a/fio.c b/fio.c index 1aba82de..4a02f2eb 100644 --- a/fio.c +++ b/fio.c @@ -52,6 +52,7 @@ int temp_stall_ts; unsigned long done_secs = 0; static struct fio_mutex *startup_mutex; +static struct fio_mutex *writeout_mutex; static volatile int fio_abort; static int exit_value; static struct itimerval itimer; @@ -1086,6 +1087,7 @@ static void *thread_main(void *data) td->ts.io_bytes[0] = td->io_bytes[0]; td->ts.io_bytes[1] = td->io_bytes[1]; + fio_mutex_down(writeout_mutex); if (td->ts.bw_log) { if (td->o.bw_log_file) { finish_log_named(td, td->ts.bw_log, @@ -1096,7 +1098,7 @@ static void *thread_main(void *data) if (td->ts.slat_log) { if (td->o.lat_log_file) { finish_log_named(td, td->ts.slat_log, - td->o.lat_log_file, "clat"); + td->o.lat_log_file, "slat"); } else finish_log(td, td->ts.slat_log, "slat"); } @@ -1107,6 +1109,7 @@ static void *thread_main(void *data) } else finish_log(td, td->ts.clat_log, "clat"); } + fio_mutex_up(writeout_mutex); if (td->o.exec_postrun) { if (system(td->o.exec_postrun) < 0) log_err("fio: postrun %s failed\n", td->o.exec_postrun); @@ -1554,6 +1557,7 @@ int main(int argc, char *argv[]) } startup_mutex = fio_mutex_init(0); + writeout_mutex = fio_mutex_init(1); set_genesis_time(); @@ -1571,5 +1575,6 @@ int main(int argc, char *argv[]) } fio_mutex_remove(startup_mutex); + fio_mutex_remove(writeout_mutex); return exit_value; }