I\'m working on a Haskell daemon that uses POSIX fork/exec together with file locking mechanism. My experiments show that file locks aren\'t inherited during executeFi
This is a dirty hack and might be not portable but I can confirm it works for ghc-7.6.3 on linux:
isThreaded :: IO (Maybe Bool)
isThreaded = do
tid <- forkIO $ threadDelay 1000000
yield
stat <- threadStatus tid
killThread tid
case stat of
ThreadBlocked BlockedOnMVar -> return (Just True)
ThreadBlocked BlockedOnOther -> return (Just False)
_ -> return Nothing
See BlockedOnOther docstring for details.