Justin Cappos <justincap...@gmail.com> added the comment: >> The Python implementation sets timeout=None (which implies that the >> underlying socket is blocking). > >No, it doesn't. A socket may be non-blocking without having a timeout; > that's the socket API (on all systems, not just BSD).
Sure and this happens when the timeout is 0, but None has a different meaning than 0. >> The problem is that it has. It has created a new Python socket >> object with a specific value for timeout (None), but the underlying >> socket is nonblocking. >> >> The docs state that timeout = None makes the socket blocking. > > What specific wording are you looking at that makes you believe so? Here is the last part of the description of settimeout: s.settimeout(None) is equivalent to s.setblocking(1) if you look at setblocking: Set blocking or non-blocking mode of the socket: if flag is 0, the socket is set to non-blocking, else to blocking mode. This seems to imply that timeout = None -> blocking. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue7995> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com