]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
* fixed some tv_cmp_ms() computations. Strictly speaking, there was
authorWilly TARREAU <willy@pcw.(none)>
Wed, 1 Mar 2006 21:30:20 +0000 (22:30 +0100)
committerWilly TARREAU <willy@pcw.(none)>
Wed, 1 Mar 2006 21:30:20 +0000 (22:30 +0100)
  a very short window of 1 microsecond every millisecond during which
  two events were not considered as 1 ms apart from each other.

haproxy.c

index 4cfa8ce635b472eb1591ac0f7e63767af9b1d881..0da06a9f459916bb9f17e0dd5b44e8dba24afd5b 100644 (file)
--- a/haproxy.c
+++ b/haproxy.c
@@ -1373,18 +1373,18 @@ static inline unsigned long tv_diff(struct timeval *tv1, struct timeval *tv2) {
  */
 static inline int tv_cmp_ms(struct timeval *tv1, struct timeval *tv2) {
     if (tv1->tv_sec == tv2->tv_sec) {
-       if (tv2->tv_usec > tv1->tv_usec + 1000)
+       if (tv2->tv_usec >= tv1->tv_usec + 1000)
            return -1;
-       else if (tv1->tv_usec > tv2->tv_usec + 1000)
+       else if (tv1->tv_usec >= tv2->tv_usec + 1000)
            return 1;
        else
            return 0;
     }
     else if ((tv2->tv_sec > tv1->tv_sec + 1) ||
-            ((tv2->tv_sec == tv1->tv_sec + 1) && (tv2->tv_usec + 1000000 > tv1->tv_usec + 1000)))
+            ((tv2->tv_sec == tv1->tv_sec + 1) && (tv2->tv_usec + 1000000 >= tv1->tv_usec + 1000)))
        return -1;
     else if ((tv1->tv_sec > tv2->tv_sec + 1) ||
-            ((tv1->tv_sec == tv2->tv_sec + 1) && (tv1->tv_usec + 1000000 > tv2->tv_usec + 1000)))
+            ((tv1->tv_sec == tv2->tv_sec + 1) && (tv1->tv_usec + 1000000 >= tv2->tv_usec + 1000)))
        return 1;
     else
        return 0;
@@ -1468,18 +1468,18 @@ static inline int tv_cmp2_ms(struct timeval *tv1, struct timeval *tv2) {
        return -1; /* tv2 later than tv1 */
     
     if (tv1->tv_sec == tv2->tv_sec) {
-       if (tv1->tv_usec > tv2->tv_usec + 1000)
+       if (tv1->tv_usec >= tv2->tv_usec + 1000)
            return 1;
-       else if (tv2->tv_usec > tv1->tv_usec + 1000)
+       else if (tv2->tv_usec >= tv1->tv_usec + 1000)
            return -1;
        else
            return 0;
     }
     else if ((tv1->tv_sec > tv2->tv_sec + 1) ||
-            ((tv1->tv_sec == tv2->tv_sec + 1) && (tv1->tv_usec + 1000000 > tv2->tv_usec + 1000)))
+            ((tv1->tv_sec == tv2->tv_sec + 1) && (tv1->tv_usec + 1000000 >= tv2->tv_usec + 1000)))
        return 1;
     else if ((tv2->tv_sec > tv1->tv_sec + 1) ||
-            ((tv2->tv_sec == tv1->tv_sec + 1) && (tv2->tv_usec + 1000000 > tv1->tv_usec + 1000)))
+            ((tv2->tv_sec == tv1->tv_sec + 1) && (tv2->tv_usec + 1000000 >= tv1->tv_usec + 1000)))
        return -1;
     else
        return 0;