From a20274fcb30df7ea64c4165f5bffe5338943647a Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Tue, 20 Jan 2009 13:57:50 +0000 Subject: [PATCH] Only call pthread_rwlock_timedwrlock() or pthread_rwlock_timedrdlock() if supported. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8996 --- drd/tests/trylock.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drd/tests/trylock.c b/drd/tests/trylock.c index 3db14edf34..29ccfd1921 100644 --- a/drd/tests/trylock.c +++ b/drd/tests/trylock.c @@ -10,6 +10,7 @@ #define _GNU_SOURCE 1 +#include "../../config.h" #include #include #include @@ -24,7 +25,6 @@ int main(int argc, char** argv) time(&abs_timeout.tv_sec); abs_timeout.tv_nsec = 0; - abs_timeout.tv_sec += 10; r = pthread_rwlock_init(&rwlock, NULL); assert(r == 0); @@ -35,8 +35,10 @@ int main(int argc, char** argv) r = pthread_rwlock_trywrlock(&rwlock); assert(r == 0); r = pthread_rwlock_unlock(&rwlock); assert(r == 0); fprintf(stderr, "Locking rwlock via pthread_rwlock_timedwrlock().\n"); +#ifdef HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK r = pthread_rwlock_timedwrlock(&rwlock, &abs_timeout); assert(r == 0); r = pthread_rwlock_unlock(&rwlock); assert(r == 0); +#endif fprintf(stderr, "Locking rwlock via pthread_rwlock_rdlock().\n"); r = pthread_rwlock_rdlock(&rwlock); assert(r == 0); r = pthread_rwlock_rdlock(&rwlock); assert(r == 0); @@ -48,8 +50,10 @@ int main(int argc, char** argv) r = pthread_rwlock_tryrdlock(&rwlock); assert(r == 0); r = pthread_rwlock_unlock(&rwlock); assert(r == 0); fprintf(stderr, "Locking rwlock via pthread_rwlock_timedrdlock().\n"); +#ifdef HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK r = pthread_rwlock_timedrdlock(&rwlock, &abs_timeout); assert(r == 0); r = pthread_rwlock_unlock(&rwlock); assert(r == 0); +#endif fprintf(stderr, "Attempt to lock for writing recursively (not allowed).\n"); r = pthread_rwlock_wrlock(&rwlock); assert(r == 0); r = pthread_rwlock_wrlock(&rwlock); assert(r != 0); -- 2.47.3