This is the mail archive of the cygwin mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
python seems to be built with the default value of FD_SETSIZE, which is only 64 on cygwin. I noticed this as it causes numerous tests in the twisted test suite to fail with "ValueError: filedescriptor out of range in select()" exceptions, but can also be demonstrated with a simple test case: $ cat select_test.py from socket import * from select import select ins = [] for i in range(1024): s = socket(AF_INET, SOCK_STREAM) ins.append(s) print "socket opened with fd", s.fileno() select(ins, [], [], 0) $ python select_test.py [...] socket opened with fd 64 Traceback (most recent call last): File "./select_test.py", line 11, in <module> select(ins, [], [], 0) ValueError: filedescriptor out of range in select() Looking at the source [1], note that steps are already taken to increase the default value of FD_SETSIZE on Win32, and I'd suggest it's appropriate to do the same on cygwin, patch attached. Note some code motion is necessary as FD_SETSIZE must be defined before sys/types.h is included if we are going to override the default value set there. I don't believe this can cause any ABI issues as the interface is in terms of python lists, rather than fd_set values. [1] http://hg.python.org/cpython/file/3c0edb157ea2/Modules/selectmodule.c
Attachment:
2.6.5-FD_SETSIZE.patch
Description: Text document
-- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |