Subject: setittimer - bug found (I think)
From: [email-masked] (Kevin Hughes)

18 Jun 1998 07:56:37 -0700
Message-ID: <[email-masked]>
Reply-To: "[email-masked]" <[email-masked]>
To: "Gnuwin95 (E-mail)" <[email-masked]>

Dear all,
	I reported odd behavior with the setittimer function recently - basically the available CPU gets
limited the more frequent the timer - and the "lost" time goes to system idle. I also noticed that the memory
being used increases slowly. The worst case I provoked was to setitimer to 5 millisec interrupt. I got NO
mill to my otherwise mill bound program and the system ran 98% idle (checked with Task manager
and perf monitor)

Having studied the code I think I know what is wrong.

	setittimer is implemented using SetTimer. When setittimer is called a call is made to SetTimer
with the appropriate value in the time out. When this occurs a WM_TIMER event occurs and is handled in 
a hidden window. This raises a SIGALRM. The trouble is it also re-evaluates the interval time and
starts another timer. Since SetTimer is not a single event but a repeated event we get a proliferation
of timers AND WM_TIMER events.

The failing code in window.cc, it looks really easy to fix - simply remove the start of a new timer in
the WM_TIMER case in the WndProc function. I would like to try this myself but as yet cannot rebuild
from the source.

A

-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".