Redhat

選擇等待什麼?

  • August 31, 2017

我有一個在 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)

這個選擇在等待什麼?有沒有隱藏在某個地方的文件句柄?

沒有文件句柄。人選

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 秒。

所以它只是什麼都不等。

引用自:https://serverfault.com/questions/871531