X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=ghc%2Frts%2FTask.h;h=ca71d2809a46b9c0a2f75bf0d13ddb3c3b8cd549;hp=27af67425c8e2c3c79c454c5c9b92bc335a52185;hb=eba7b660a36878cd8d926845807913d7ec5734c9;hpb=608bc3f3ad6fca14a23529f314dbd9d3342a9507 diff --git a/ghc/rts/Task.h b/ghc/rts/Task.h index 27af674..ca71d28 100644 --- a/ghc/rts/Task.h +++ b/ghc/rts/Task.h @@ -27,21 +27,15 @@ build Tasks Capabilities --------------------------------- normal 1 1 - -threaded N 1 - -smp N N + -threaded N N The non-threaded build has a single Task and a single global Capability. - The 'threaded' build has multiple Tasks, but a single Capability. - At any one time only one task executing STG code, other tasks are - either busy executing code outside the RTS (e.g., a C call) or - waiting for their turn to (again) evaluate some STG code. A task - relinquishes its RTS token when it is asked to evaluate an external + The THREADED_RTS build allows multiple tasks and mulitple Capabilities. + Multiple Tasks may all be running Haskell code simultaneously. A task + relinquishes its Capability when it is asked to evaluate an external (C) call. - - The SMP build allows multiple tasks and mulitple Capabilities. - Multiple Tasks may all be running Haskell code simultaneously. In general, there may be multiple Tasks for an OS thread. This happens if one Task makes a foreign call from Haskell, and