diff --git a/scheds/rust/scx_rusty/src/load_balance.rs b/scheds/rust/scx_rusty/src/load_balance.rs index 829b6da..7f412bc 100644 --- a/scheds/rust/scx_rusty/src/load_balance.rs +++ b/scheds/rust/scx_rusty/src/load_balance.rs @@ -869,6 +869,10 @@ impl<'a, 'b> LoadBalancer<'a, 'b> { while pull_node.domains.len() > 0 { let mut pull_dom = pull_node.domains.remove_index(0); + if pull_dom.load.state() != BalanceState::NeedsPull { + pull_node.domains.insert(pull_dom); + break; + } let transferred = self.try_find_move_task((&mut push_dom, push_imbal), (&mut pull_dom, pull_imbal), xfer)?;