void awakenBlockedQueue (Capability *cap, StgTSO *tso);
#endif
+/* wakeUpRts()
+ *
+ * Causes an OS thread to wake up and run the scheduler, if necessary.
+ */
+void wakeUpRts(void);
+
/* unblockOne()
*
* Put the specified thread on the run queue of the given Capability.
* Called from STG : yes
* Locks assumed : we own the Capability.
*/
-StgTSO * unblockOne(Capability *cap, StgTSO *tso);
-
-/* raiseAsync()
- *
- * Raises an exception asynchronously in the specified thread.
- *
- * Called from STG : yes
- * Locks assumed : none
- */
-void raiseAsync(Capability *cap, StgTSO *tso, StgClosure *exception);
-
-/* suspendComputation()
- *
- * A variant of raiseAsync(), this strips the stack of the specified
- * thread down to the stop_here point, leaving a current closure on
- * top of the stack at [stop_here - 1].
- */
-void suspendComputation(Capability *cap, StgTSO *tso, StgPtr stop_here);
+StgTSO * unblockOne (Capability *cap, StgTSO *tso);
/* raiseExceptionHelper */
StgWord raiseExceptionHelper (StgRegTable *reg, StgTSO *tso, StgClosure *exception);
*/
#define SCHED_RUNNING 0 /* running as normal */
#define SCHED_INTERRUPTING 1 /* ^C detected, before threads are deleted */
-#define SCHED_INTERRUPTED 2 /* ^C detected, after threads deleted */
-#define SCHED_SHUTTING_DOWN 3 /* final shutdown */
+#define SCHED_SHUTTING_DOWN 2 /* final shutdown */
extern rtsBool RTS_VAR(sched_state);
extern Mutex RTS_VAR(sched_mutex);
#endif
-StgBool isThreadBound(StgTSO *tso);
-
SchedulerStatus rts_mainLazyIO(HaskellObj p, /*out*/HaskellObj *ret);
/* Called by shutdown_handler(). */
void print_bqe (StgBlockingQueueElement *bqe);
#endif
-void labelThread(StgPtr tso, char *label);
-
/* -----------------------------------------------------------------------------
* Some convenient macros/inline functions...
*/
;
}
-#ifdef DEBUG
-void sched_belch(char *s, ...)
- GNU_ATTRIBUTE(format (printf, 1, 2));
-#endif
-
#endif /* !IN_STG_CODE */
STATIC_INLINE void