Fix NUMA support on Windows (#15049)
[ghc.git] / rts / Threads.h
index a1ff080..600d4ea 100644 (file)
@@ -6,25 +6,23 @@
  *
  * --------------------------------------------------------------------------*/
 
-#ifndef THREADS_H
-#define THREADS_H
+#pragma once
 
 #include "BeginPrivate.h"
 
 #define END_BLOCKED_EXCEPTIONS_QUEUE ((MessageThrowTo*)END_TSO_QUEUE)
 
 StgTSO * unblockOne (Capability *cap, StgTSO *tso);
-StgTSO * unblockOne_ (Capability *cap, StgTSO *tso, rtsBool allow_migrate);
+StgTSO * unblockOne_ (Capability *cap, StgTSO *tso, bool allow_migrate);
 
 void checkBlockingQueues (Capability *cap, StgTSO *tso);
-void wakeBlockingQueue   (Capability *cap, StgBlockingQueue *bq);
 void tryWakeupThread     (Capability *cap, StgTSO *tso);
 void migrateThread       (Capability *from, StgTSO *tso, Capability *to);
 
 // Wakes up a thread on a Capability (probably a different Capability
 // from the one held by the current Task).
 //
-#ifdef THREADED_RTS
+#if defined(THREADED_RTS)
 void wakeupThreadOnCapability (Capability *cap,
                                Capability *other_cap, 
                                StgTSO *tso);
@@ -33,8 +31,8 @@ void wakeupThreadOnCapability (Capability *cap,
 void updateThunk         (Capability *cap, StgTSO *tso,
                           StgClosure *thunk, StgClosure *val);
 
-rtsBool removeThreadFromQueue     (Capability *cap, StgTSO **queue, StgTSO *tso);
-rtsBool removeThreadFromDeQueue   (Capability *cap, StgTSO **head, StgTSO **tail, StgTSO *tso);
+bool removeThreadFromQueue     (Capability *cap, StgTSO **queue, StgTSO *tso);
+bool removeThreadFromDeQueue   (Capability *cap, StgTSO **head, StgTSO **tail, StgTSO *tso);
 
 StgBool isThreadBound (StgTSO* tso);
 
@@ -42,7 +40,9 @@ StgBool isThreadBound (StgTSO* tso);
 void threadStackOverflow  (Capability *cap, StgTSO *tso);
 W_   threadStackUnderflow (Capability *cap, StgTSO *tso);
 
-#ifdef DEBUG
+bool performTryPutMVar(Capability *cap, StgMVar *mvar, StgClosure *value);
+
+#if defined(DEBUG)
 void printThreadBlockage (StgTSO *tso);
 void printThreadStatus (StgTSO *t);
 void printAllThreads (void);
@@ -50,13 +50,3 @@ void printThreadQueue (StgTSO *t);
 #endif
 
 #include "EndPrivate.h"
-
-#endif /* THREADS_H */
-
-// Local Variables:
-// mode: C
-// fill-column: 80
-// indent-tabs-mode: nil
-// c-basic-offset: 4
-// buffer-file-coding-system: utf-8-unix
-// End: