parconc-examples-0.3: sudoku-par2.hs
import Sudoku
import Control.Exception
import System.Environment
import Data.Maybe
import Control.Monad.Par.Scheds.Trace
main :: IO ()
main = do
[f] <- getArgs
grids <- fmap lines $ readFile f
let (as,bs) = splitAt (length grids `div` 2) grids
print $ length $ filter isJust $ runPar $ do
i1 <- new
i2 <- new
fork $ put i1 (map solve as)
fork $ put i2 (map solve bs)
as' <- get i1
bs' <- get i2
return (as' ++ bs')