X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=mutex.c;h=9fab715bd7429e87b2690000d49a69bbaea3785a;hb=9c6f1e756dbf6c0916b0b94d9b0bcd1d9c43b9e9;hp=d8c482519909ff334ac5929565908232f541ac24;hpb=06eac6b2318da7759a055c4a3ac01c2c1e8aa764;p=fio.git diff --git a/mutex.c b/mutex.c index d8c48251..9fab715b 100644 --- a/mutex.c +++ b/mutex.c @@ -141,11 +141,15 @@ struct fio_mutex *fio_mutex_init(int value) return NULL; } -static bool mutex_timed_out(struct timeval *t, unsigned int msecs) +static bool mutex_timed_out(struct timespec *t, unsigned int msecs) { - struct timeval now; + struct timeval tv; + struct timespec now; + + gettimeofday(&tv, NULL); + now.tv_sec = tv.tv_sec; + now.tv_nsec = tv.tv_usec * 1000; - gettimeofday(&now, NULL); return mtime_since(t, &now) >= msecs; } @@ -177,7 +181,7 @@ int fio_mutex_down_timeout(struct fio_mutex *mutex, unsigned int msecs) * way too early, double check. */ ret = pthread_cond_timedwait(&mutex->cond, &mutex->lock, &t); - if (ret == ETIMEDOUT && !mutex_timed_out(&tv_s, msecs)) + if (ret == ETIMEDOUT && !mutex_timed_out(&t, msecs)) ret = 0; } mutex->waiters--;