
I'm trying to fix selectmodule.c on Windows (it raises bogus exceptions, because select() on Windows does not set errno). The first patch I had was this: if (n < 0) { + #ifdef MS_WINDOWS + PyErr_SetExcFromWindowsErr(SelectError, WSAGetLastError()); + #else PyErr_SetFromErrno(SelectError); + #endif } else if (n == 0) { /* optimization */ but PyErr_SetExcFromWindowsErr is not present in the 2.2 maintainance branch. An easier fix would be this one, but I wonder if it is allowed/good style to set 'errno': *** 274,279 **** --- 274,282 ---- Py_END_ALLOW_THREADS if (n < 0) { + #ifdef MS_WINDOWS + errno = WSAGetLastError(); + #endif PyErr_SetFromErrno(SelectError); } else if (n == 0) { Thomas