SF bug 110843: Low FD_SETSIZE limit on Win32 (PR#41). Boosted to 512.

This commit is contained in:
Tim Peters 2000-12-12 01:18:41 +00:00
parent f377d57328
commit d92dfe0ef5
2 changed files with 18 additions and 1 deletions

View File

@ -27,6 +27,14 @@ Core language, builtins, and interpreter
fit in an int. In 1.6 and earlier, a negative long formatted fit in an int. In 1.6 and earlier, a negative long formatted
via %u raised an error if it was too big to fit in an int. via %u raised an error if it was too big to fit in an int.
Windows changes
- select module: By default under Windows, a select() call
can specify no more than 64 sockets. Python now boosts
this Microsoft default to 512. If you need even more than
that, see the MS docs (you'll need to #define FD_SETSIZE
and recompile Python from source).
What's New in Python 2.0? What's New in Python 2.0?
========================= =========================

View File

@ -1,4 +1,3 @@
/* select - Module containing unix select(2) call. /* select - Module containing unix select(2) call.
Under Unix, the file descriptors are small integers. Under Unix, the file descriptors are small integers.
Under Win32, select only exists for sockets, and sockets may Under Win32, select only exists for sockets, and sockets may
@ -9,6 +8,16 @@
#include "Python.h" #include "Python.h"
/* Windows #defines FD_SETSIZE to 64 if FD_SETSIZE isn't already defined.
64 is too small (too many people have bumped into that limit).
Here we boost it.
Users who want even more than the boosted limit should #define
FD_SETSIZE higher before this; e.g., via compiler /D switch.
*/
#if defined(MS_WINDOWS) && !defined(FD_SETSIZE)
#define FD_SETSIZE 512
#endif
#ifdef HAVE_UNISTD_H #ifdef HAVE_UNISTD_H
#include <unistd.h> #include <unistd.h>
#endif #endif