[project @ 2002-10-12 23:28:48 by wolfgang]
[ghc-hetmet.git] / ghc / rts / Schedule.h
index 5b0e16b..7722802 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: Schedule.h,v 1.31 2002/03/12 13:57:12 simonmar Exp $
+ * $Id: Schedule.h,v 1.35 2002/07/25 18:37:00 sof Exp $
  *
  * (c) The GHC Team 1998-1999
  *
@@ -58,6 +58,7 @@ StgTSO *unblockOne(StgTSO *tso);
  * Locks assumed   :  none
  */
 void raiseAsync(StgTSO *tso, StgClosure *exception);
+void raiseAsyncWithLock(StgTSO *tso, StgClosure *exception);
 
 /* awaitEvent()
  *
@@ -135,15 +136,8 @@ extern nat         rts_n_waiting_workers;
 extern nat         rts_n_waiting_tasks;
 #endif
 
+StgInt forkProcess(StgTSO *tso);
 
-/* Sigh, RTS-internal versions of waitThread(), scheduleThread(), and
-   rts_evalIO() for the use by main() only. ToDo: better. */
-extern SchedulerStatus waitThread_(StgTSO *tso,
-                                  /*out*/StgClosure **ret
-#if defined(THREADED_RTS)
-                                  , rtsBool blockWaiting
-#endif
-                                  );
 extern SchedulerStatus rts_mainEvalIO(HaskellObj p, /*out*/HaskellObj *ret);
 
 
@@ -189,14 +183,16 @@ typedef struct StgMainThread_ {
  */
 extern StgMainThread *main_threads;
 
+void printAllThreads(void);
+#ifdef COMPILING_SCHEDULER
+static void printThreadBlockage(StgTSO *tso);
+static void printThreadStatus(StgTSO *tso);
+#endif
 /* debugging only 
  */
 #ifdef DEBUG
-void printThreadBlockage(StgTSO *tso);
-void printThreadStatus(StgTSO *tso);
-void printAllThreads(void);
-#endif
 void print_bq (StgClosure *node);
+#endif
 #if defined(PAR)
 void print_bqe (StgBlockingQueueElement *bqe);
 #endif