哪些因素决定了Warp应用程序中settingsFork的适当值?

时间:2016-02-06 00:15:47

标签: haskell scotty haskell-warp

Warp个应用程序中,Settings数据类型上提供了settingsFork选项。这允许人们选择不同的叉模型。应该何时将其设置为默认值(void . forkIOWithUnmask)以外的其他值?做出此决定时应考虑哪些因素? (例如,IO与CPU绑定/使用FFI)。

1 个答案:

答案 0 :(得分:1)

如果您要操作线程本地状态(因为未绑定的Haskell"线程"可能在不同的OS线程上运行),您可能希望使用forkOS来创建绑定线程,因此破坏了首先使用线程局部存储的整个想法。文档提到了OpenGL作为一个可能的例子。总的来说,我发现很难想出一个你不想要默认实现的情况,它利用了内置的绿色线程系统。它获得了GHC的调度程序hard to beat的智慧。