2525 SchedulerOutput )
2626from vllm .v1 .core .sched .request_queue import (SchedulingPolicy ,
2727 create_request_queue )
28- from vllm .v1 .core .sched .utils import check_stop
28+ from vllm .v1 .core .sched .utils import check_stop , remove_all
2929from vllm .v1 .engine import (EngineCoreEventType , EngineCoreOutput ,
3030 EngineCoreOutputs )
3131from vllm .v1 .kv_cache_interface import KVCacheConfig
@@ -872,9 +872,7 @@ def update_from_output(
872872
873873 # Remove the stopped requests from the running and waiting queues.
874874 if stopped_running_reqs :
875- self .running = [
876- req for req in self .running if req not in stopped_running_reqs
877- ]
875+ self .running = remove_all (self .running , stopped_running_reqs )
878876 if stopped_preempted_reqs :
879877 # This is a rare case and unlikely to impact performance.
880878 self .waiting .remove_requests (stopped_preempted_reqs )
@@ -1000,7 +998,7 @@ def finish_requests(
1000998 else :
1001999 request_ids = set (request_ids )
10021000
1003- running_requests_to_remove = []
1001+ running_requests_to_remove = set ()
10041002 waiting_requests_to_remove = []
10051003 valid_requests = []
10061004
@@ -1013,13 +1011,13 @@ def finish_requests(
10131011
10141012 valid_requests .append (request )
10151013 if request .status == RequestStatus .RUNNING :
1016- running_requests_to_remove .append (request )
1014+ running_requests_to_remove .add (request )
10171015 else :
10181016 waiting_requests_to_remove .append (request )
10191017
10201018 # Remove all requests from queues at once for better efficiency
1021- for request in running_requests_to_remove :
1022- self .running . remove ( request )
1019+ if running_requests_to_remove :
1020+ self .running = remove_all ( self . running , running_requests_to_remove )
10231021 if waiting_requests_to_remove :
10241022 self .waiting .remove_requests (waiting_requests_to_remove )
10251023
0 commit comments