From: Neal Norwitz Date: Sat, 2 Nov 2002 19:55:21 +0000 (+0000) Subject: Use O_NONBLOCK rather than O_NDELAY, so we get POSIX non-blocking I/O. X-Git-Tag: v2.3c1~3614 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=39d22e569394e7ddd27a3806dab9d0fc6032e13d;p=thirdparty%2FPython%2Fcpython.git Use O_NONBLOCK rather than O_NDELAY, so we get POSIX non-blocking I/O. On HPUX, Solaris, Tru64 (Dec UNIX), and IRIX (I think), O_NONBLOCK is the POSIX version of non-blocking I/O which is what we want. On Linux and FreeBSD (at least), O_NONBLOCK and O_NDELAY are the same. So this change should have no negative effect on those platforms. Tested on Linux, Solaris, HPUX. Thanks to Anders Qvist for diagnosing this problem. --- diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index bdeddea0c719..2afa69769eeb 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -211,8 +211,8 @@ int h_errno; /* not used */ # define offsetof(type, member) ((size_t)(&((type *)0)->member)) #endif -#ifndef O_NDELAY -# define O_NDELAY O_NONBLOCK /* For QNX only? */ +#ifndef O_NONBLOCK +# define O_NONBLOCK O_NDELAY #endif #include "addrinfo.h" @@ -488,9 +488,9 @@ internal_setblocking(PySocketSockObject *s, int block) #else /* !PYOS_OS2 */ delay_flag = fcntl(s->sock_fd, F_GETFL, 0); if (block) - delay_flag &= (~O_NDELAY); + delay_flag &= (~O_NONBLOCK); else - delay_flag |= O_NDELAY; + delay_flag |= O_NONBLOCK; fcntl(s->sock_fd, F_SETFL, delay_flag); #endif /* !PYOS_OS2 */ #else /* MS_WINDOWS */