[tor-commits] [tor/master] Use correct (absolute) time for pthread_cond_timedwait

nickm at torproject.org nickm at torproject.org
Wed Jan 21 19:50:31 UTC 2015


commit d69717f61bd9ab4e0a6097f0201bd02fc96f88eb
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Sep 27 12:09:57 2013 -0400

    Use correct (absolute) time for pthread_cond_timedwait
---
 src/common/compat_pthreads.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/common/compat_pthreads.c b/src/common/compat_pthreads.c
index 8d3c609..5983427 100644
--- a/src/common/compat_pthreads.c
+++ b/src/common/compat_pthreads.c
@@ -199,9 +199,12 @@ tor_cond_wait(tor_cond_t *cond, tor_mutex_t *mutex, const struct timeval *tv)
     return pthread_cond_wait(&cond->cond, &mutex->mutex) ? -1 : 0;
   } else {
     struct timespec ts;
+    struct timeval tvnow, tvsum;
     int r;
-    ts.tv_sec = tv->tv_sec;
-    ts.tv_nsec = tv->tv_usec * 1000;
+    gettimeofday(&tvnow, NULL);
+    timeradd(tv, &tvnow, &tvsum);
+    ts.tv_sec = tvsum.tv_sec;
+    ts.tv_nsec = tvsum.tv_usec * 1000;
     r = pthread_cond_timedwait(&cond->cond, &mutex->mutex, &ts);
     if (r == 0)
       return 0;





More information about the tor-commits mailing list