Hi!

On Thu, Aug 14, 2014 at 5:54 PM, Christian Höner zu Siederdissen <choener@tbi.univie.ac.at> wrote:
However, due to the way ghc handles unsafe imports, namely block
everything else whenever 'cfun' is called, I happen to have only one
active 'go'. Lets assume 'cfun' is cheap and would suffer from 'ccall
safe' more than I'd be willing to pay.

Calls to unsafe functions do not block everything! Other Haskell threads can continue running on other capabilities (make sure you run your program with +RTS -N). However, make sure that the C function itself never blocks, or it might deadlock your program.