[Haskell-cafe] Unbound threads and FFI
Bulat Ziganshin
bulatz at HotPOP.com
Wed Dec 14 13:03:51 EST 2005
Hello Simon,
Wednesday, December 14, 2005, 7:39:43 PM, you wrote:
SM> Do other Haskell threads get blocked during an FFI call?
SM> | safe unsafe
SM> --------------+----------------
SM> -threaded | NO YES
SM> no -threaded | YES YES
there is also `threadsafe` specifier. i don't understand from the docs
what it exactly means?
ghc commentary says:
To signal that you want an external call to be serviced by a separate
OS thread, you have to add the attribute threadsafe to a foreign
import declaration, i.e.,
foreign import "bigComp" threadsafe largeComputation :: Int -> IO ()
The distinction between 'safe' and thread-safe C calls is made so that
we may call external functions that aren't re-entrant but may cause a
GC to occur.
The threadsafe attribute subsumes safe.
--
Best regards,
Bulat mailto:bulatz at HotPOP.com
More information about the Haskell-Cafe
mailing list