[project @ 2001-08-17 11:08:01 by simonmar]
[ghc-hetmet.git] / ghc / rts / Itimer.c
index 43421b4..1d63adf 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: Itimer.c,v 1.20 2001/02/13 11:10:28 rrt Exp $
+ * $Id: Itimer.c,v 1.23 2001/08/14 13:40:09 sewardj Exp $
  *
  * (c) The GHC Team, 1995-1999
  *
@@ -18,9 +18,8 @@
  * to support.  So much for standards.
  */
 
-#if !defined(_AIX)
-# define NON_POSIX_SOURCE
-#endif
+/* This is not posix compliant. */
+/* #include "PosixSource.h" */
 
 #include "Rts.h"
 #include "RtsFlags.h"
@@ -80,10 +79,12 @@ handle_tick(int unused STG_UNUSED)
    */
   ticks_since_timestamp++;
 
-  ticks_to_ctxt_switch--;
-  if (ticks_to_ctxt_switch <= 0) {
-      ticks_to_ctxt_switch = RtsFlags.ConcFlags.ctxtSwitchTicks;
-      context_switch = 1;      /* schedule a context switch */
+  if (RtsFlags.ConcFlags.ctxtSwitchTicks > 0) {
+      ticks_to_ctxt_switch--;
+      if (ticks_to_ctxt_switch <= 0) {
+         ticks_to_ctxt_switch = RtsFlags.ConcFlags.ctxtSwitchTicks;
+         context_switch = 1;   /* schedule a context switch */
+      }
   }
 }
 
@@ -243,6 +244,6 @@ getourtimeofday(void)
 unsigned int
 getourtimeofday(void)
 {
-  return (unsigned int)GetTickCount() * 1000;
+  return ((unsigned int)GetTickCount() * TICK_FREQUENCY) / 1000;
 }
 #endif