Kristján Valur Jónsson <krist...@ccpgames.com> added the comment:

socket.defaulttimeout(None)
s = socket.socket()
s.settimeout(0) #nonblocking
s.bind()
s2, a = s.accept()
print s2.gettimeout() #prints ´none´, meaning blocking
s2.receive(10) #raises EWOULDBLOCK error, since internally it is non-blocking

I don't agree with practicality vs. purity, particularly when trying to 
understand the timeout logic.  Most of the timeout logic is implemented in c 
and never touched by python, in init_sockobject().  But then you tack on extra 
logic in socket.py, in what is even a socket object wrapper.  This means that 
any module that uses the "pure" _socket.socket object, such as C extensions, 
will not get the "correct" behaviour.

----------

_______________________________________
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

Reply via email to