From 642f60f65181bea96bb1e1fce6f5fca9589adad3 Mon Sep 17 00:00:00 2001 From: rkrolib Date: Tue, 2 Dec 2003 21:04:33 +0000 Subject: [PATCH] Ensure that the time-out for sleeping is never negative. git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@375 7f0cb862-5218-0410-a997-914c9d46530a --- freeglut/freeglut/src/freeglut_main.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/freeglut/freeglut/src/freeglut_main.c b/freeglut/freeglut/src/freeglut_main.c index bbcb1ab..4936528 100644 --- a/freeglut/freeglut/src/freeglut_main.c +++ b/freeglut/freeglut/src/freeglut_main.c @@ -423,10 +423,12 @@ static int fgHavePendingRedisplays (void) static long fgNextTimer( void ) { long ret = INT_MAX; - SFG_Timer *timer; + SFG_Timer *timer = fgState.Timers.First; - if( (timer = fgState.Timers.First) ) + if( timer ) ret = timer->TriggerTime - fgElapsedTime(); + if( ret < 0 ) + ret = 0; return ret; } @@ -452,7 +454,7 @@ static void fgSleepForEvents( void ) msec = fgNextTimer( ); if( fgHaveJoystick( ) ) msec = MIN( msec, 10 ); - + wait.tv_sec = msec / 1000; wait.tv_usec = (msec % 1000) * 1000; err = select( socket+1, &fdset, NULL, NULL, &wait );