1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-06 19:50:22 +00:00
QB64-PE/tests/compile_tests/timer/timer_stop.bas
Matthew Kilgore d4ed371681 Stopped timers don't trigger on TIMER ON
If a timer expires while stopped, it should trigger when TIMER ON is
run. Instead, on QB64 it triggers randomly after the TIMER ON happens.

The basic issue is that `qbevent` needs to be set to trigger the timer,
but TIMER ON doesn't do that. The regular timer logic that does that
already set it when the timer expired while sleeping, so it won't set it
again. The simplest solution is to just alway set qbevent = 1 when TIMER
ON is done. It's slightly less efficent but doesn't hurt to set it even
when there are no timers that expired.

Fixes: #293
2023-02-12 21:27:25 -05:00

19 lines
329 B
QBasic

$Console:Only
On Timer(2) GoSub timerhand
Timer On
Timer Stop
' Timer will not trigger when stopped
Sleep 3
' Timer should trigger immediately when started as two seconds have elapsed
' while it was stopped
Timer On
Timer Off 'Shouldn't matter, timer triggers as soon as Timer On runs
System
timerhand:
Print "Timer!"
return