[issue7995] On Mac / BSD sockets returned by accept inherit the parent's FD flags
Justin Cappos
report at bugs.python.org
Mon Nov 22 02:22:14 CET 2010
Justin Cappos <justincappos at 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 <report at bugs.python.org>
<http://bugs.python.org/issue7995>
_______________________________________
More information about the Python-bugs-list
mailing list