diff --git a/include/sys/time.h b/include/sys/time.h index 7b1e15e9b5f..3d7139e7547 100644 --- a/include/sys/time.h +++ b/include/sys/time.h @@ -77,13 +77,13 @@ #define timersub(tvp, uvp, vvp) \ do \ { \ - (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ - if ((uvp)->tv_usec > (tvp)->tv_usec) \ +    (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ +    (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ +    if ((vvp)->tv_usec < 0) \ { \ - (vvp)->tv_sec--; \ - (tvp)->tv_usec += 1000000; \ - } \ - (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ +      (vvp)->tv_sec--; \ +      (vvp)->tv_usec += 1000000; \ +    } \ } \ while (0) @@ -92,8 +92,8 @@ #define timerclear(tvp) \ do \ { \ - tvp)->tv_sec = 0; \ - tvp)->tv_usec = 0; \ + (tvp)->tv_sec = 0; \ + (tvp)->tv_usec = 0; \ } \ while (0)