/* #include "PosixSource.h" */
#include "Rts.h"
+#include "Storage.h"
#include "Schedule.h"
#include "RtsUtils.h"
#include "RtsFlags.h"
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;
tso->link = END_TSO_QUEUE;
- IF_DEBUG(scheduler,debugBelch("Waking up sleeping thread %d\n", tso->id));
+ IF_DEBUG(scheduler,debugBelch("Waking up sleeping thread %lu\n", (unsigned long)tso->id));
// MainCapability: this code is !THREADED_RTS
pushOnRunQueue(&MainCapability,tso);
flag = rtsTrue;
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;
}
* serviced.
*/
#if defined(RTS_USER_SIGNALS)
- if (signals_pending()) {
+ if (RtsFlags.MiscFlags.install_signal_handlers && signals_pending()) {
startSignalHandlers(&MainCapability);
return; /* still hold the lock */
}
}
if (ready) {
- IF_DEBUG(scheduler,debugBelch("Waking up blocked thread %d\n", tso->id));
+ IF_DEBUG(scheduler,debugBelch("Waking up blocked thread %lu\n", (unsigned long)tso->id));
tso->why_blocked = NotBlocked;
tso->link = END_TSO_QUEUE;
pushOnRunQueue(&MainCapability,tso);