No connection CPU hog fix
- the previous fix was incomplete, it shouldn't consume excessive resources now when there are no connections
This commit is contained in:
parent
01c8f3b66d
commit
d6df4470e1
|
@ -398,6 +398,8 @@ def loop(timeout=30.0, use_poll=False, map=None, count=None,
|
|||
poller=None):
|
||||
if map is None:
|
||||
map = socket_map
|
||||
if count is None:
|
||||
count = True
|
||||
# code which grants backward compatibility with "use_poll"
|
||||
# argument which should no longer be used in favor of
|
||||
# "poller"
|
||||
|
@ -414,27 +416,20 @@ def loop(timeout=30.0, use_poll=False, map=None, count=None,
|
|||
elif hasattr(select, 'select'):
|
||||
poller = select_poller
|
||||
|
||||
if count is None:
|
||||
while map:
|
||||
# fill buckets first
|
||||
update_sent()
|
||||
update_received()
|
||||
# then poll
|
||||
poller(timeout, map)
|
||||
else:
|
||||
if timeout == 0:
|
||||
deadline = 0
|
||||
else:
|
||||
deadline = time.time() + timeout
|
||||
while map and count > 0:
|
||||
while count:
|
||||
# fill buckets first
|
||||
update_sent()
|
||||
update_received()
|
||||
subtimeout = deadline - time.time()
|
||||
if subtimeout <= 0:
|
||||
break
|
||||
poller(subtimeout, map)
|
||||
# then poll
|
||||
poller(subtimeout, map)
|
||||
if type(count) is int:
|
||||
count = count - 1
|
||||
|
||||
class dispatcher:
|
||||
|
|
Loading…
Reference in New Issue
Block a user