def poll_fun_wrap (timeout, map = None):
global _logger
if map is None:
map = asyncore.socket_map
if EXHAUST_DNS:
asyndns.pop_all ()
try:
poll_fun (timeout, map)
except (TypeError, OSError) as why:
# WSAENOTSOCK
remove_notsocks (map)
except ValueError:
# negative file descriptor, testing all sockets
killed = remove_notsocks (map)
# or too many file descriptors in select(), divide and conquer
if not killed:
half = int (len (map) / 2)
tmap = {}
cc = 0
for k, v in list(map.items ()):
tmap [k] = v
cc += 1
if cc == half:
poll_fun_wrap (timeout, tmap)
tmap = {}
poll_fun_wrap (timeout, tmap)
except:
_logger and _logger.trace ()
raise
评论列表
文章目录