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);
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);