Pet*_*lák 13 concurrency haskell process ghc
我正在使用一个Haskell守护进程,它使用POSIX fork/exec和文件锁定机制.我的实验表明,文件锁定期间不继承executeFile与-threaded运行时(见这个线程),如果我用,不管+RTS -N与否.所以我想添加一个检查,以确保守护进程没有编译-threaded.有可行的方法来检测它吗?
Fed*_*lev 14
有一个值,在Control.Concurrent这一点,例如:
module Main (main) where
import Control.Concurrent
main :: IO ()
main = print rtsSupportsBoundThreads
Run Code Online (Sandbox Code Playgroud)
并测试:
$ ghc -fforce-recomp Test.hs; ./Test
[1 of 1] Compiling Main ( Test.hs, Test.o )
Linking Test ...
False
$ ghc -fforce-recomp -threaded Test.hs; ./Test
[1 of 1] Compiling Main ( Test.hs, Test.o )
Linking Test ...
True
Run Code Online (Sandbox Code Playgroud)
它是C部分的源代码:
HsBool
rtsSupportsBoundThreads(void)
{
#if defined(THREADED_RTS)
return HS_BOOL_TRUE;
#else
return HS_BOOL_FALSE;
#endif
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
414 次 |
| 最近记录: |