pthread_cond_timedwait: be robust to timeout points in the past
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@334 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/vg_libpthread.c b/vg_libpthread.c
index 8d5ef2f..2cdc5ce 100644
--- a/vg_libpthread.c
+++ b/vg_libpthread.c
@@ -798,7 +798,8 @@
ull_ms_end_after_1970
= 1000ULL * ((unsigned long long int)(abstime->tv_sec))
+ ((unsigned long long int)(abstime->tv_nsec / 1000000));
- assert(ull_ms_end_after_1970 >= ull_ms_now_after_1970);
+ if (ull_ms_end_after_1970 < ull_ms_now_after_1970)
+ ull_ms_end_after_1970 = ull_ms_now_after_1970;
ms_end
= ms_now + (unsigned int)(ull_ms_end_after_1970 - ull_ms_now_after_1970);
VALGRIND_MAGIC_SEQUENCE(res, 0 /* default */,