/* Context switch flag.
* Locks required : sched_mutex
*/
-extern nat RTS_VAR(context_switch);
+extern int RTS_VAR(context_switch);
extern rtsBool RTS_VAR(interrupted);
/* In Select.c */
extern nat RTS_VAR(rts_n_waiting_tasks);
#endif
-StgBool rtsSupportsBoundThreads(void);
StgBool isThreadBound(StgTSO *tso);
-StgInt forkProcess(HsStablePtr *entry);
extern SchedulerStatus rts_mainLazyIO(HaskellObj p, /*out*/HaskellObj *ret);
} \
blocked_queue_tl = tso;
-/* Signal that a runnable thread has become available, in
- * case there are any waiting tasks to execute it.
- */
-#if defined(RTS_SUPPORTS_THREADS)
-#define THREAD_RUNNABLE() \
- wakeBlockedWorkerThread(); \
- context_switch = 1;
-#else
-#define THREAD_RUNNABLE() /* nothing */
-#endif
-
/* Check whether various thread queues are empty
*/
#define EMPTY_QUEUE(q) (q == END_TSO_QUEUE)
#endif
#ifdef DEBUG
-extern void sched_belch(char *s, ...);
+extern void sched_belch(char *s, ...)
+ GNU_ATTRIBUTE(format (printf, 1, 2));
#endif
#endif /* __SCHEDULE_H__ */