def safe_select(r,w,e,timeout=None):
delay=timeout
while True:
try:
# Make sure we don't delay longer than requested
start=time.time()
if delay is not None:
return _selectfunction(r,w,e,delay)
else:
return _selectfunction(r,w,e)
except select.error,x:
if x.args[0] == errno.EINTR or (hasattr(errno, 'WSAEINTR') and x.args[0] == errno.WSAEINTR):
delay=max(0.0,time.time()-start)
else:
raise
评论列表
文章目录