Concurrency issue with dynamic linker in GHC

Donald Bruce Stewart dons at cse.unsw.edu.au
Sun Oct 22 01:04:02 EDT 2006


bulat.ziganshin:
> Hello Donald,
> 
> Saturday, October 21, 2006, 1:03:34 PM, you wrote:
> 
> >> > I am running ghc 6.4.2 on a Win32 machine. I'm using hs-plugins in one
> 
> > Oh, that's almost certainly it. Bulat++
> > It's blocking on the foreign call (into the linker), since there's no IO
> > manager thread, I think.
> 
> can't you define this call as 'safe'?

But is it safe. Hmm.... I get kind of queasy when mucking about in the rts.

    foreign import ccall unsafe "lookupSymbol"
       c_lookupSymbol :: CString -> IO (Ptr a)

    foreign import ccall unsafe "loadObj"
       c_loadObj :: CString -> IO Bool

    foreign import ccall unsafe "unloadObj"
       c_unloadObj :: CString -> IO Bool

    foreign import ccall unsafe "resolveObjs"
       c_resolveObjs :: IO Bool

    foreign import ccall unsafe "addDLL"
       c_addDLL :: CString -> IO CString

    foreign import ccall unsafe "initLinker"
       initLinker :: IO ()

-- Don


More information about the Glasgow-haskell-users mailing list