X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fphases.xml;h=e5bac79dfd7dd1d7d1a7992b01726dc411956964;hb=c76c69c5b62f1ca4fa52d75b0dfbd37b7eddbb09;hp=fd034a305afc5dbdf30734b9b8a2775df0de8ea6;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1;p=ghc-hetmet.git diff --git a/docs/users_guide/phases.xml b/docs/users_guide/phases.xml index fd034a3..e5bac79 100644 --- a/docs/users_guide/phases.xml +++ b/docs/users_guide/phases.xml @@ -839,26 +839,43 @@ $ cat foo.hspp - Link the program with the "threaded" runtime system. - This version of the runtime is designed to be used in - programs that use multiple operating-system threads. It - supports calls to foreign-exported functions from multiple - OS threads. Calls to foreign functions are made using the - same OS thread that created the Haskell thread (if it was - created by a call-in), or an arbitrary OS thread otherwise - (if the Haskell thread was created by + Link the program with the "threaded" version of the + runtime system. The threaded runtime system is so-called + because it manages multiple OS threads, as opposed to the + default runtime system which is purely + single-threaded. + + Note that you do not need + in order to use concurrency; the + single-threaded runtime supports concurrency between Haskell + threads just fine. + + The threaded runtime system provides the following + benefits: + + + + Parallelismparallelism on a multiprocessormultiprocessorSMP or multicoremulticore + machine. See . + + The ability to make a foreign call that does not + block all other Haskell threads.. + + The ability to invoke foreign exported Haskell + functions from multiple OS threads. + + + + With , calls to foreign + functions are made using the same OS thread that created the + Haskell thread (if it was created by a call to a foreign + exported Haskell function), or an arbitrary OS thread + otherwise (if the Haskell thread was created by forkIO). More details on the use of "bound threads" in the threaded runtime can be found in the Control.Concurrent module. - - The threaded RTS does not - support using multiple CPUs to speed up execution of a - multi-threaded Haskell program. The GHC runtime platform - is still single-threaded, but using the - option it can be used safely in - a multi-threaded environment.