From: Simon Marlow Date: Wed, 18 Jul 2007 09:27:54 +0000 (+0000) Subject: wakeUpSleepingThreads: fix off by one X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=843211e0a54b051ecec5d5fbbf6afa27dfa5fd81 wakeUpSleepingThreads: fix off by one The symptom of this bug is after the time of a threadDelay has expired, the RTS does a whole slew of extra select() calls. This should help with #1523, but it's not the whole story. --- diff --git a/rts/posix/Select.c b/rts/posix/Select.c index 57599bc..fb7f38d 100644 --- a/rts/posix/Select.c +++ b/rts/posix/Select.c @@ -61,7 +61,7 @@ wakeUpSleepingThreads(lnat ticks) rtsBool flag = rtsFalse; while (sleeping_queue != END_TSO_QUEUE && - (int)(ticks - sleeping_queue->block_info.target) > 0) { + (int)(ticks - sleeping_queue->block_info.target) >= 0) { tso = sleeping_queue; sleeping_queue = tso->link; tso->why_blocked = NotBlocked;