[btree_walker] Fix error returning
This commit is contained in:
parent
860b3ca7d2
commit
ae630f1fd8
@ -379,13 +379,13 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(rblocks) => {
|
Ok(rblocks) => {
|
||||||
let errs = Arc::new(Mutex::new(Vec::new()));
|
let child_errs = Arc::new(Mutex::new(Vec::new()));
|
||||||
|
|
||||||
for (i, rb) in rblocks.into_iter().enumerate() {
|
for (i, rb) in rblocks.into_iter().enumerate() {
|
||||||
match rb {
|
match rb {
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
let e = io_err(path).keys_context(&filtered_krs[i]);
|
let e = io_err(path).keys_context(&filtered_krs[i]);
|
||||||
let mut errs = errs.lock().unwrap();
|
let mut errs = child_errs.lock().unwrap();
|
||||||
errs.push(e.clone());
|
errs.push(e.clone());
|
||||||
w.set_fail(blocks[i], e);
|
w.set_fail(blocks[i], e);
|
||||||
}
|
}
|
||||||
@ -393,7 +393,7 @@ where
|
|||||||
let w = w.clone();
|
let w = w.clone();
|
||||||
let visitor = visitor.clone();
|
let visitor = visitor.clone();
|
||||||
let kr = filtered_krs[i].clone();
|
let kr = filtered_krs[i].clone();
|
||||||
let errs = errs.clone();
|
let errs = child_errs.clone();
|
||||||
let mut path = path.clone();
|
let mut path = path.clone();
|
||||||
|
|
||||||
pool.execute(move || {
|
pool.execute(move || {
|
||||||
@ -410,6 +410,8 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
pool.join();
|
pool.join();
|
||||||
|
let mut child_errs = Arc::try_unwrap(child_errs).unwrap().into_inner().unwrap();
|
||||||
|
errs.append(&mut child_errs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user