+ while (!ret) {
+ uint64_t sec = DISK_UTIL_MSEC / 1000;
+ uint64_t nsec = (DISK_UTIL_MSEC % 1000) * 1000000;
+ struct timespec ts;
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+ ts.tv_sec = tv.tv_sec + sec;
+ ts.tv_nsec = (tv.tv_usec * 1000) + nsec;
+ if (ts.tv_nsec > 1000000000ULL) {
+ ts.tv_nsec -= 1000000000ULL;
+ ts.tv_sec++;
+ }
+
+ pthread_cond_timedwait(&helper_cond, &helper_lock, &ts);
+