[Haskell-cafe] Parallel executing of actions

Mitar mmitar at gmail.com
Sun Apr 15 15:56:02 EDT 2007


On 4/15/07, Spencer Janssen <sjanssen at cse.unl.edu> wrote:
> This version will fork a new thread for each action:
> \begin{code}
> import Control.Concurrent
> import Control.Monad
> parSequence_ xs = do
>     m <- newEmptyMVar
>     mapM_ (\x -> forkIO x >> putMVar m ()) xs
>     replicateM_ (length xs) (takeMVar m)
> parMapM_ f xs = parSequence_ $ map f xs
> \end{code}

OpenGL bindings successfully crash. The functional calculations in f
should be done in parallel, but those few OpenGL actions should still
be done sequentially. I am attaching the code in question. It is a
simple voxel raycasting engine.

(Any suggestions on other memory/performance improvements are more
than welcome.)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Main.hs
Type: application/octet-stream
Size: 8087 bytes
Desc: not available
Url : http://www.haskell.org/pipermail/haskell-cafe/attachments/20070415/5a1e35be/Main-0001.obj

More information about the Haskell-Cafe mailing list