+// This global counter is used to allow multiple threads to stop the
+// timer temporarily with a stopTimer()/startTimer() pair. If
+// timer_enabled == 0 timer is enabled
+// timer_disabled == N, N > 0 timer is disabled by N threads
+// When timer_enabled makes a transition to 0, we enable the timer,
+// and when it makes a transition to non-0 we disable it.
+
+static StgWord timer_disabled;
+
+void
+initTimer(void)
+{
+ initProfTimer();
+ if (RtsFlags.MiscFlags.tickInterval != 0) {
+ initTicker(RtsFlags.MiscFlags.tickInterval, handle_tick);
+ }
+ timer_disabled = 1;
+}
+