选择等什么?

选择等什么?

我在 RHEL 6 上运行了一个 Python 2.7 应用程序,它偶尔会挂起。如果我 strace 该应用程序,我会反复收到以下信息:

[pid 180442] select(0, NULL, NULL, NULL, {10, 0}) = 0 (Timeout)
[pid 180442] select(0, NULL, NULL, NULL, {10, 0}) = 0 (Timeout)

这个 select 正在等待什么? 是否有文件句柄隐藏在其中?

答案1

没有文件句柄。男人选择

int select(int nfds, fd_set *readfds, fd_set *writefds,
           fd_set *exceptfds, struct timeval *timeout);

nfds is the highest-numbered file descriptor in any of the three sets, plus 1

readfds、writefds 和 exceptfds 都为空 (NULL)

超时时间为 10 秒。

因此,它只是在等待什么也没发生。

相关内容