summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorSimon Marlow <simonmar@microsoft.com>2007-07-18 09:27:54 +0000
committerSimon Marlow <simonmar@microsoft.com>2007-07-18 09:27:54 +0000
commit843211e0a54b051ecec5d5fbbf6afa27dfa5fd81 (patch)
tree76c2c7a5af863dfb59dd536dc967b38cc567ad83 /rts
parent48fb2b521898998a17873ad6cf30610aa5ab6db3 (diff)
downloadhaskell-843211e0a54b051ecec5d5fbbf6afa27dfa5fd81.tar.gz
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.
Diffstat (limited to 'rts')
-rw-r--r--rts/posix/Select.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/posix/Select.c b/rts/posix/Select.c
index 57599bcee4..fb7f38de35 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;