GHC.Conc: clarify that 'forkOn' binds to capability, not a 'CPU' or 'Task'
authorSergei Trofimovich <slyfox@gentoo.org>
Thu, 10 Jul 2014 07:56:23 +0000 (02:56 -0500)
committerAustin Seipp <austin@well-typed.com>
Thu, 10 Jul 2014 16:21:26 +0000 (11:21 -0500)
Summary:
Capability (HEC) can migrate to other Task (thus switch CPU)
unless capability was created as a bound haskell thread.

Task also can migrate to other CPU due to OS scheduler
(unless '-qa' RTS option is set).

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Test Plan: proofread for typos

Reviewers: simonmar, austin

Reviewed By: austin

Subscribers: simonmar, relrod, carter

Differential Revision: https://phabricator.haskell.org/D52

libraries/base/GHC/Conc/Sync.lhs

index ebb7226..713e0b5 100644 (file)
@@ -219,10 +219,10 @@ forkIOWithUnmask :: ((forall a . IO a -> IO a) -> IO ()) -> IO ThreadId
 forkIOWithUnmask io = forkIO (io unsafeUnmask)
 
 {- |
-Like 'forkIO', but lets you specify on which processor the thread
+Like 'forkIO', but lets you specify on which capability the thread
 should run.  Unlike a `forkIO` thread, a thread created by `forkOn`
-will stay on the same processor for its entire lifetime (`forkIO`
-threads can migrate between processors according to the scheduling
+will stay on the same capability for its entire lifetime (`forkIO`
+threads can migrate between capabilities according to the scheduling
 policy).  `forkOn` is useful for overriding the scheduling policy when
 you know in advance how best to distribute the threads.