I have to agree with Brandon's diagnosis: unsafePerformIO will
take out a lock, which is likely why you are seeing no parallelism.

Edward

Excerpts from Brandon Allbery's message of 2014-08-14 17:12:00 +0100:
> On Thu, Aug 14, 2014 at 11:54 AM, Christian Höner zu Siederdissen <
> [email protected]> wrote:
> 
> > go xs = unsafePerformIO $ do
> >   forM_ xs $ cfun
> >   return $ somethingUnhealthy
> >
> 
> I wonder if this is your real problem. `unsafePerformIO` does some extra
> locking; the FFI specifies a function `unsafeLocalState`, which in GHC is
> `unsafeDupablePerformIO` which skips the extra locking.
> 
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to