Message132593
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. |
|
Date |
User |
Action |
Args |
2011-03-30 16:15:26 | kristjan.jonsson | set | recipients:
+ kristjan.jonsson, loewis, ronaldoussoren, exarkun, roysmith, pitrou, giampaolo.rodola, ned.deily, nicdumz, bbangert, Justin.Cappos, rosslagerwall |
2011-03-30 16:15:25 | kristjan.jonsson | set | messageid: <1301501725.99.0.227596474118.issue7995@psf.upfronthosting.co.za> |
2011-03-30 16:15:25 | kristjan.jonsson | link | issue7995 messages |
2011-03-30 16:15:25 | kristjan.jonsson | create | |
|