File tree Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -994,19 +994,22 @@ def _run_once(self):
994
994
'call_later' callbacks.
995
995
"""
996
996
997
- # Remove delayed calls that were cancelled if their number is too high
998
997
sched_count = len (self ._scheduled )
999
998
if (sched_count > _MIN_SCHEDULED_TIMER_HANDLES and
1000
999
self ._timer_cancelled_count / sched_count >
1001
1000
_MIN_CANCELLED_TIMER_HANDLES_FRACTION ):
1001
+ # Remove delayed calls that were cancelled if their number
1002
+ # is too high
1003
+ new_scheduled = []
1002
1004
for handle in self ._scheduled :
1003
1005
if handle ._cancelled :
1004
1006
handle ._scheduled = False
1007
+ else :
1008
+ new_scheduled .append (handle )
1005
1009
1006
- self ._scheduled = [x for x in self ._scheduled if not x ._cancelled ]
1010
+ heapq .heapify (new_scheduled )
1011
+ self ._scheduled = new_scheduled
1007
1012
self ._timer_cancelled_count = 0
1008
-
1009
- heapq .heapify (self ._scheduled )
1010
1013
else :
1011
1014
# Remove delayed calls that were cancelled from head of queue.
1012
1015
while self ._scheduled and self ._scheduled [0 ]._cancelled :
You can’t perform that action at this time.
0 commit comments