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):
994994 'call_later' callbacks.
995995 """
996996
997- # Remove delayed calls that were cancelled if their number is too high
998997 sched_count = len (self ._scheduled )
999998 if (sched_count > _MIN_SCHEDULED_TIMER_HANDLES and
1000999 self ._timer_cancelled_count / sched_count >
10011000 _MIN_CANCELLED_TIMER_HANDLES_FRACTION ):
1001+ # Remove delayed calls that were cancelled if their number
1002+ # is too high
1003+ new_scheduled = []
10021004 for handle in self ._scheduled :
10031005 if handle ._cancelled :
10041006 handle ._scheduled = False
1007+ else :
1008+ new_scheduled .append (handle )
10051009
1006- self ._scheduled = [x for x in self ._scheduled if not x ._cancelled ]
1010+ heapq .heapify (new_scheduled )
1011+ self ._scheduled = new_scheduled
10071012 self ._timer_cancelled_count = 0
1008-
1009- heapq .heapify (self ._scheduled )
10101013 else :
10111014 # Remove delayed calls that were cancelled from head of queue.
10121015 while self ._scheduled and self ._scheduled [0 ]._cancelled :
You can’t perform that action at this time.
0 commit comments