Polyhedra Problems. -
10-10-2003
, 10:31 AM
I was wondering if anyone has come across this timer related bug in
Polyhedra:
I am using the 'Call-back API' which provides all sorts of functions,
but the one im having problems with is the timer.
TimerAPI *TimerAPI::CreateOneShotTimer(long dsecs,
const void (*userfun)(void*),
const void* userdata)
I have a sequence of events whereby within the triggered timer
function I have placed a OutputDebugString("Timer Function
Called\r\n");
Also I have placed another debug line immediately before the timer
call.
the resulting debug being along the lines of
About to call Timer
Timer Function Called
code is being called such that i can see these 2 lines of code at
regular
intervals - ive speeded things up so they happen like every few
secondss. This
fills up my debug window nicely. However, open up a DOS box and alter
the
time so its 5 mins in the future and things still work fine. HOWEVER,
change
the time to sometime in the past,5 mins or 1 hour - and the timer
doesnt
work!
It appears the TimerAPI::CreateOneShotTimer(time, &Timer_function,
Param)
gets called, but the Timer_function itself doesnt get invoked at that
trigger interval. Im suspecting its the timing calculation code
possibly calculating things based on the clock. Further digging
around confirms that the period the timer comes back at is connected
to the timespan from the last time to the newly set time. ie, set the
clock back 3 mins and the trigger period is 3 mins!
If they'd used a timing that was like GetTickCount or
QueryPerformanceCounter, perhaps this would have solved it? Anyone
seen this problem, or have a workaround for it? |