首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kqueue上的Haskell并发

kqueue上的Haskell并发
EN

Stack Overflow用户
提问于 2010-11-19 13:49:18
回答 2查看 582关注 0票数 6

我编写了并发应用程序并捕获了错误:

buildFdSets:超出范围的文件描述符

我发现这是操作系统对一个进程中文件描述符数量的限制,在我的FreeBSD中是1024。这是select()的极限。此外,我还了解到还有另一种方法:kqueue()

我的问题是:

  • 如何赢得文件描述符的限制?
  • 如何在haskell程序中使用kqueue()而不是select()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-19 14:09:35

我相信GHC 7现在支持在后端使用kqueue():

链接到纸上描述性博客文章

然而,Haskell平台还没有推出GHC 7。

票数 4
EN

Stack Overflow用户

发布于 2011-05-02 21:36:59

您可以简单地升级到GHC 7,这是Haskell平台的一部分,其中的包括

在POSIX平台上,有一个基于epoll/kqueue/轮询的新I/O管理器,它允许多线程I/O代码扩展到更多的线程(100k+)。

特别是:

在架构上,我们的新I/O管理器由两个组件组成。我们的事件notifi阳离子库提供了一个干净的、可移植的API,并抽象了用于提供effi阳离子(kqueue、epoll和轮询)的系统级机制。我们还编写了一个实现半公共threadWaitRead和threadWaitWrite接口的shim。这意味着核心file或网络库以及其他低级I/O库都不需要任何更改来处理--并且透明地使fit从新代码的性能改进中获益。

也就是说,只要升级,事情就会神奇地变得更好。

以下是一些阅读材料:

  • GHC的可伸缩事件处理
  • 对GHC I/O管理器的可伸缩超时支持
  • 使用新的Haskell epoll事件库
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4225589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档