Fixed lock up when system time jumps backwards Signed-off-by: Christoph Lohmann <20h@r-36.net>
Rob Pilling rob@egbert
1 files changed,
5 insertions(+),
2 deletions(-)
jump to
M
st.c
→
st.c
@@ -3687,6 +3687,8 @@ gettimeofday(&lastblink, NULL);
gettimeofday(&last, NULL); for(xev = actionfps;;) { + long deltatime; + FD_ZERO(&rfd); FD_SET(cmdfd, &rfd); FD_SET(xfd, &rfd);@@ -3720,8 +3722,9 @@ term.mode ^= MODE_BLINK;
gettimeofday(&lastblink, NULL); dodraw = 1; } - if(TIMEDIFF(now, last) \ - > (xev? (1000/xfps) : (1000/actionfps))) { + deltatime = TIMEDIFF(now, last); + if(deltatime > (xev? (1000/xfps) : (1000/actionfps)) + || deltatime < 0) { dodraw = 1; last = now; }