summaryrefslogtreecommitdiff
path: root/gdb/event-loop.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/event-loop.c')
-rw-r--r--gdb/event-loop.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gdb/event-loop.c b/gdb/event-loop.c
index dd849dfb8ff..d6babc24ff2 100644
--- a/gdb/event-loop.c
+++ b/gdb/event-loop.c
@@ -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;