民意调查导致崩溃

时间:2010-07-22 06:54:13

标签: linux multithreading linux-kernel polling

我遇到以下值的崩溃: -

轮询是正在使用的系统调用 给“errno”24(EMFILE) 和struct pollfd的值为“fd = 1022,events = 1,revents = 32”

这里我们正在讨论“fd = 1022”然后为什么它显示“errno”为24(EMFILE / 太多文件打开 /)

我有多个线程在无限循环中工作。

1 个答案:

答案 0 :(得分:2)

在我的计算机上,ulimit -a显示1024个最大打开文件。 1022非常接近这个限制。

您是否有尝试打开文件且失败的代码?可能是其他系统调用正在将errno设置为EMFILE。

确保您正在处理打开fds的代码的返回值。

确保您没有在某处泄露文件描述符。

如果此代码以适当的权限运行,您可以尝试使用ulimit -nsetrlimit()增加最大打开文件限制。