Further condense search for replacement spares
This commit is contained in:
parent
762fef432f
commit
12deeddeb0
|
@ -552,16 +552,12 @@ impl BridgeAuth {
|
||||||
// - third dissolve a spare bucket to create more available bridges
|
// - third dissolve a spare bucket to create more available bridges
|
||||||
let Some(replacement) = available_bridge.or_else(|| {
|
let Some(replacement) = available_bridge.or_else(|| {
|
||||||
self.bridge_table.unallocated_bridges.pop().or_else(|| {
|
self.bridge_table.unallocated_bridges.pop().or_else(|| {
|
||||||
// First get the bucketnums for the replacement bridge in case it is a spare
|
|
||||||
let mut bucketnums: Vec<u32> = Vec::new();
|
|
||||||
for (bucketnum, _) in positions.iter() {
|
|
||||||
bucketnums.push(*bucketnum);
|
|
||||||
}
|
|
||||||
let Some(spare) = self
|
let Some(spare) = self
|
||||||
.bridge_table
|
.bridge_table
|
||||||
.spares
|
.spares
|
||||||
.iter()
|
.iter()
|
||||||
.find(|x| !bucketnums.contains(x))
|
// in case bridge is a spare, avoid replacing it with itself
|
||||||
|
.find(|x| !positions.iter().any(|(bucketnum, _)| &bucketnum == x))
|
||||||
.cloned()
|
.cloned()
|
||||||
else {
|
else {
|
||||||
return None;
|
return None;
|
||||||
|
|
Loading…
Reference in New Issue