【发布时间】:2012-04-09 07:18:44
【问题描述】:
我正在使用 xmpppy。我创建了 50 多个 xmpp 连接线程。一段时间后我得到一个错误:
File "transports.py", line 199, in pending_datareturn select.select([self._sock],[],[],timeout)[0] ValueError: filedescriptor out of range in select()
为什么会这样?
附:对不起我的语言。
【问题讨论】:
-
这有时可能表明您的文件描述符用完了,如果您没有正确关闭文件/连接,这在多线程环境中很容易发生。在 Linux 下,您可以通过查看
/proc/<pid>/fd/来查看应用程序(在运行时)的打开文件列表,其中<pid> 是程序的进程 ID。如果这很大(接近 1024),您可能 (a) 代码有问题或 (b) 需要增加程序的打开文件限制。