File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -105,16 +105,23 @@ def _skip_next_nodes(self, parent: H) -> None:
105105 self ._finished_future .set_result (None )
106106 return
107107
108- skipped_nodes = [ node for node , deps in self ._unprocessed_nodes .items () if parent in deps ]
108+ skipped_nodes = { node for node , deps in self ._unprocessed_nodes .items () if parent in deps }
109109
110- self ._skipped_nodes .extend (skipped_nodes )
110+ while skipped_nodes :
111+ self ._skipped_nodes .extend (skipped_nodes )
111112
112- for skipped_node in skipped_nodes :
113- self ._unprocessed_nodes_num -= 1
114- self ._unprocessed_nodes .pop (skipped_node )
113+ for skipped_node in skipped_nodes :
114+ self ._unprocessed_nodes_num -= 1
115+ self ._unprocessed_nodes .pop (skipped_node )
116+
117+ skipped_nodes = {
118+ node
119+ for node , deps in self ._unprocessed_nodes .items ()
120+ if skipped_nodes .intersection (deps )
121+ }
115122
116- for skipped_node in skipped_nodes :
117- self ._skip_next_nodes ( skipped_node )
123+ if not self . _unprocessed_nodes_num :
124+ self ._finished_future . set_result ( None )
118125
119126 def _init_state (self ) -> None :
120127 self ._unprocessed_nodes = self .dag .graph
You can’t perform that action at this time.
0 commit comments