gettimeofday problem

From: Salvatore D'Angelo (dangelo.sasaman@tiscalinet.it)
Date: Mon Jun 24 2002 - 03:55:31 EST


Hi,

I am writing a small piece of code that use the gettimeofday routine and
I have noticed a very strange behaviour. If I call the routine two times
in sequence I expect that the second value is greater than or equal to
the first one, but it is not true.

please check the following code.

Sometimes happen that the string "Strange Behaviour" is printed with
kernel 2.4.18.

I tried to find in the Linux Archive patches to solve this problem, but
I didn't find anything (there are emails that talk about gettimeofday,
but probably they do not answer to my questions).

The same thing happen in Java using the System.currentTimeMillis() routine.

#include <fstream.h>
#include <sys/time.h>

// this routine calculate the current time returning its value in long
long format.
long long currentTimeMillis() {
   long long t;
   struct timeval tv;

   gettimeofday(&tv, 0);

   t = tv.tv_sec;
   t = (t *1000) + (tv.tv_usec/1000);

   return t;
}

void main() {
   for (;;) {
       long long a = currentTimeMillis();
       long long b = currentTimeMillis();

       if (a>b) {
           cout << "Strange Behaviour" << endl;
       }
   }
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Jun 30 2002 - 22:00:06 EST