X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2Frts%2FThreads.h;h=c974142ce35799559e940266390c159fe824ef33;hb=b10d7d079ec9c3fc22d4700fe484dd297bddb805;hp=06a0ed11dc7ee843c6309bf07868a50c70fbad5e;hpb=a2a67cd520b9841114d69a87a423dabcb3b4368e;p=ghc-hetmet.git diff --git a/includes/rts/Threads.h b/includes/rts/Threads.h index 06a0ed1..c974142 100644 --- a/includes/rts/Threads.h +++ b/includes/rts/Threads.h @@ -5,6 +5,11 @@ * External API for the scheduler. For most uses, the functions in * RtsAPI.h should be enough. * + * Do not #include this file directly: #include "Rts.h" instead. + * + * To understand the structure of the RTS headers, see the wiki: + * http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes + * * ---------------------------------------------------------------------------*/ #ifndef RTS_THREADS_H @@ -26,7 +31,7 @@ StgTSO *createStrictIOThread (Capability *cap, nat stack_size, StgClosure *closure); // Suspending/resuming threads around foreign calls -void * suspendThread (StgRegTable *); +void * suspendThread (StgRegTable *, rtsBool interruptible); StgRegTable * resumeThread (void *); // @@ -34,7 +39,14 @@ StgRegTable * resumeThread (void *); // int cmp_thread (StgPtr tso1, StgPtr tso2); int rts_getThreadId (StgPtr tso); + +#if !defined(mingw32_HOST_OS) pid_t forkProcess (HsStablePtr *entry); +#else +pid_t forkProcess (HsStablePtr *entry) + GNU_ATTRIBUTE(__noreturn__); +#endif + HsBool rtsSupportsBoundThreads (void); // The number of Capabilities