Redhat
選擇等待什麼?
我有一個在 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 秒。
所以它只是什麼都不等。