- The non-threaded build has a single Task and a single global
- Capability.
-
- 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.
-
- In general, there may be multiple Tasks for an OS thread. This
- happens if one Task makes a foreign call from Haskell, and
- subsequently calls back in to create a new bound thread.
+ In general, there may be multiple Tasks associated with a given OS
+ thread. A second Task is created when one Task makes a foreign
+ call from Haskell, and subsequently calls back in to Haskell,
+ creating a new bound thread.