X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fposix%2FSelect.c;h=fb7f38de353cf5f9d2c93e52719e095fa99cd934;hb=0b9530245a33b8206ca38b9de6dfb01e056fd8dc;hp=0dbacef7a816a175351c35efea530c8fcddda861;hpb=f9e1c2af8fdd112019a657e66b0cd685d8df66f6;p=ghc-hetmet.git diff --git a/rts/posix/Select.c b/rts/posix/Select.c index 0dbacef..fb7f38d 100644 --- a/rts/posix/Select.c +++ b/rts/posix/Select.c @@ -10,6 +10,7 @@ /* #include "PosixSource.h" */ #include "Rts.h" +#include "Storage.h" #include "Schedule.h" #include "RtsUtils.h" #include "RtsFlags.h" @@ -60,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; @@ -126,7 +127,7 @@ awaitEvent(rtsBool wait) min = 0; } else if (sleeping_queue != END_TSO_QUEUE) { min = (sleeping_queue->block_info.target - ticks) - * TICK_MILLISECS * 1000; + * RtsFlags.MiscFlags.tickInterval * 1000; } else { min = 0x7ffffff; } @@ -207,7 +208,7 @@ awaitEvent(rtsBool wait) * serviced. */ #if defined(RTS_USER_SIGNALS) - if (signals_pending()) { + if (RtsFlags.MiscFlags.install_signal_handlers && signals_pending()) { startSignalHandlers(&MainCapability); return; /* still hold the lock */ }