Add "Support SMP" and "RTS ways" to the compiler --info output
[ghc-hetmet.git] / rts / posix / Itimer.c
index 8600c0a..df95f21 100644 (file)
@@ -67,9 +67,8 @@
  * For now, we're using (1), but this needs a better solution. --SDM
  */
 
-#if defined(HAVE_TIMER_CREATE) && defined(HAVE_TIMER_SETTIME)
+#if defined(USE_TIMER_CREATE)
 
-#  define USE_TIMER_CREATE
 #  define ITIMER_SIGNAL SIGVTALRM
 #  ifdef THREADED_RTS
 #    define TIMER_FLAVOUR CLOCK_REALTIME
@@ -79,7 +78,6 @@
 
 #elif defined(HAVE_SETITIMER)
 
-#  define USE_ITIMER
 #  ifdef THREADED_RTS
 //   Oh dear, we have to use SIGALRM if there's no timer_create and
 //   we're using the THREADED_RTS.  This leads to problems, see bug #850.
@@ -235,8 +233,11 @@ lnat
 getourtimeofday(void)
 {
   struct timeval tv;
+  nat interval;
+  interval = RtsFlags.MiscFlags.tickInterval;
+  if (interval == 0) { interval = 50; }
   gettimeofday(&tv, (struct timezone *) NULL);
        // cast to lnat because nat may be 64 bit when int is only 32 bit
-  return ((lnat)tv.tv_sec * 1000 / RtsFlags.MiscFlags.tickInterval +
-         (lnat)tv.tv_usec / (RtsFlags.MiscFlags.tickInterval * 1000));
+  return ((lnat)tv.tv_sec * 1000 / interval +
+         (lnat)tv.tv_usec / (interval * 1000));
 }