2000-03-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
[binutils-gdb.git] / gdb / event-loop.c
index dd849dfb8ff81b04e015ed1cb1ac71a0f9e51cd2..d6babc24ff2f8f00ccd7cd73c9a6a85aadd09ae4 100644 (file)
@@ -1114,8 +1114,11 @@ poll_timers (void)
        }
 
       /* Oops it expired already. Tell select / poll to return
-         immediately. */
-      if (delta.tv_sec < 0)
+         immediately. (Cannot simply test if delta.tv_sec is negative
+        because time_t might be unsigned.)  */
+      if (timer_list.first_timer->when.tv_sec < time_now.tv_sec
+         || (timer_list.first_timer->when.tv_sec == time_now.tv_sec
+             && timer_list.first_timer->when.tv_usec < time_now.tv_usec))
        {
          delta.tv_sec = 0;
          delta.tv_usec = 0;