[Haskell-cafe] Re: MVar and Par ..
Luke Palmer
lrpalmer at gmail.com
Tue Dec 16 07:57:35 EST 2008
On Tue, Dec 16, 2008 at 5:54 AM, Luke Palmer <lrpalmer at gmail.com> wrote:
> Okay, that's a bit clearer. Control.Parallel is not what you want; that is
> for parallelizing pure code (and is very nice inside its little domain).
> But you want concurrent code: multiple threads that change state at the same
> time. That is in Control.Concurrent.
>
> In particular, the "shared variable" is Data.IORef.
>
> Simple example from which you should be able to extrapolate.
Apologies, this code doesn't compile. Here's the fixed version:
import Control.Concurrent
import Control.Concurrent.MVar
import Data.IORef
threadBody var = do
x <- readIORef var
writeIORef var (x+1)
main = do
var <- newIORef 0
-- spawn two threads
forkIO (threadBody var)
forkIO (threadBody var)
-- look at the value of the variable
x <- readIORef var
print x
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20081216/4e1cf11c/attachment.htm
More information about the Haskell-Cafe
mailing list