Don't call pthread_condattr_setclock() unless it exists

Fixes bug 17819; bugfix on 0.2.6.3-alpha (specifically, d684dbb0).
This commit is contained in:
Nick Mathewson 2015-12-16 09:23:44 -05:00
parent 784e9fff9b
commit 33b5bfb948
3 changed files with 7 additions and 1 deletions

4
changes/bug17819 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (compilation):
- Don't try to use the pthrad_condattr_setclock() function unless
it actually exists. Fixes compilation on NetBSD-6.x. Fixes bug
17819; bugfix on 0.2.6.3-alpha.

View File

@ -425,6 +425,7 @@ AC_CHECK_FUNCS(
if test "$bwin32" != true; then if test "$bwin32" != true; then
AC_CHECK_HEADERS(pthread.h) AC_CHECK_HEADERS(pthread.h)
AC_CHECK_FUNCS(pthread_create) AC_CHECK_FUNCS(pthread_create)
AC_CHECK_FUNCS(pthread_condattr_setclock)
fi fi
if test "$bwin32" = true; then if test "$bwin32" = true; then

View File

@ -185,7 +185,8 @@ tor_cond_init(tor_cond_t *cond)
return -1; return -1;
} }
#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) #if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) \
&& defined(HAVE_PTHREAD_CONDATTR_SETCLOCK)
/* Use monotonic time so when we timedwait() on it, any clock adjustment /* Use monotonic time so when we timedwait() on it, any clock adjustment
* won't affect the timeout value. */ * won't affect the timeout value. */
if (pthread_condattr_setclock(&condattr, CLOCK_MONOTONIC)) { if (pthread_condattr_setclock(&condattr, CLOCK_MONOTONIC)) {