Fix worker_avail

This commit is contained in:
fakeshadow 2021-04-16 09:07:59 +08:00
parent aeb81ad3fd
commit 10a8c62247
1 changed files with 6 additions and 10 deletions

View File

@ -121,11 +121,11 @@ impl Availability {
} else {
let shift = 1 << idx as u128;
debug_assert_ne!(self.0[offset] & shift, 0);
if self.0[offset] & shift != 0 {
self.0[offset] ^= shift;
}
}
}
/// Set all worker handle to available state.
/// This would result in a re-check on all workers' availability.
@ -527,6 +527,9 @@ mod test {
aval.set_available(idx, false);
assert!(!aval.available());
aval.set_available(idx, false);
assert!(!aval.available());
}
fn multi(aval: &mut Availability, mut idx: Vec<usize>) {
@ -565,13 +568,6 @@ mod test {
single(&mut aval, 512);
}
#[test]
#[should_panic]
fn double_set_unavailable() {
let mut aval = Availability::default();
aval.set_available(233, false);
}
#[test]
fn pin_point() {
let mut aval = Availability::default();