From f8b6cd2182494252fdddafe72331b631afac08d8 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 18 Jul 2009 12:45:27 -0700 Subject: Extend pthread_cond_timedwait tests. --- nptl/ChangeLog | 3 +++ nptl/tst-cond11.c | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) (limited to 'nptl') diff --git a/nptl/ChangeLog b/nptl/ChangeLog index c7e1d04..d5b812e 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,8 @@ 2009-07-18 Ulrich Drepper + * tst-cond11.c (run_test): Add test to check that the timeout is + long enough. + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to directly use absolute timeout. diff --git a/nptl/tst-cond11.c b/nptl/tst-cond11.c index 0de4d56..4d0c7dd 100644 --- a/nptl/tst-cond11.c +++ b/nptl/tst-cond11.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2003. @@ -130,6 +130,20 @@ run_test (clockid_t cl) return 1; } + struct timespec ts2; + if (clock_gettime (cl, &ts2) != 0) + { + puts ("second clock_gettime failed"); + return 1; + } + + if (ts2.tv_sec < ts.tv_sec + || (ts2.tv_sec == ts.tv_sec && ts2.tv_nsec < ts.tv_nsec)) + { + puts ("timeout too short"); + return 1; + } + if (pthread_mutex_unlock (&mut) != 0) { puts ("mutex_unlock failed"); -- cgit v1.1