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/coregrind/arch/x86-linux/vg_libpthread.c b/coregrind/arch/x86-linux/vg_libpthread.c
index 8d5ef2f..2cdc5ce 100644
--- a/coregrind/arch/x86-linux/vg_libpthread.c
+++ b/coregrind/arch/x86-linux/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 */,
diff --git a/coregrind/vg_libpthread.c b/coregrind/vg_libpthread.c
index 8d5ef2f..2cdc5ce 100644
--- a/coregrind/vg_libpthread.c
+++ b/coregrind/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 */,
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 */,