Index: lock.c =================================================================== --- lock.c (revision 371334) +++ lock.c (working copy) @@ -1141,13 +1141,13 @@ res = pthread_rwlock_timedrdlock(&t->lock, abs_timeout); #else do { - struct timeval _start = ast_tvnow(), _diff; + struct timeval _now; for (;;) { if (!(res = pthread_rwlock_tryrdlock(&t->lock))) { break; } - _diff = ast_tvsub(ast_tvnow(), _start); - if (_diff.tv_sec > abs_timeout->tv_sec || (_diff.tv_sec == abs_timeout->tv_sec && _diff.tv_usec * 1000 > abs_timeout->tv_nsec)) { + _now = ast_tvnow(); + if (_now.tv_sec > abs_timeout->tv_sec || (_now.tv_sec == abs_timeout->tv_sec && _now.tv_usec * 1000 > abs_timeout->tv_nsec)) { break; } usleep(1); @@ -1244,13 +1244,13 @@ res = pthread_rwlock_timedwrlock(&t->lock, abs_timeout); #else do { - struct timeval _start = ast_tvnow(), _diff; + struct timeval _now; for (;;) { if (!(res = pthread_rwlock_trywrlock(&t->lock))) { break; } - _diff = ast_tvsub(ast_tvnow(), _start); - if (_diff.tv_sec > abs_timeout->tv_sec || (_diff.tv_sec == abs_timeout->tv_sec && _diff.tv_usec * 1000 > abs_timeout->tv_nsec)) { + _now = ast_tvnow(); + if (_now.tv_sec > abs_timeout->tv_sec || (_now.tv_sec == abs_timeout->tv_sec && _now.tv_usec * 1000 > abs_timeout->tv_nsec)) { break; } usleep(1);