make assertions debug only
This commit is contained in:
parent
37e8a6e721
commit
e2d5208025
|
@ -40,7 +40,7 @@ mod util {
|
|||
}
|
||||
|
||||
pub fn new(ptr: *mut T, tag: usize) -> TaggedAtomicPtr<T, BITS> {
|
||||
assert!(core::mem::align_of::<T>().ilog2() as usize >= BITS);
|
||||
debug_assert!(core::mem::align_of::<T>().ilog2() as usize >= BITS);
|
||||
let mask = Self::mask();
|
||||
Self(
|
||||
AtomicPtr::new(ptr.with_addr((ptr.addr() & !mask) | (tag & mask)).cast()),
|
||||
|
@ -524,7 +524,7 @@ mod job {
|
|||
) {
|
||||
// if still pending, sleep until completed
|
||||
Ok(state) => {
|
||||
assert_eq!(state, JobState::Pending as usize);
|
||||
debug_assert_eq!(state, JobState::Pending as usize);
|
||||
unsafe {
|
||||
*(&mut *self.err_or_link.get()).waker = Some(std::thread::current());
|
||||
}
|
||||
|
@ -541,7 +541,7 @@ mod job {
|
|||
// after sleeping, state should be `Finished`
|
||||
}
|
||||
Err(state) => {
|
||||
assert_ne!(state, JobState::Pending as usize);
|
||||
debug_assert_ne!(state, JobState::Pending as usize);
|
||||
|
||||
if state == JobState::Finished as usize {
|
||||
let err = unsafe { (&mut *self.err_or_link.get()).error.take() };
|
||||
|
@ -559,11 +559,6 @@ mod job {
|
|||
return result;
|
||||
} else {
|
||||
// spin until lock is released.
|
||||
// eprintln!(
|
||||
// "wait({:?}): spinning ({:?})",
|
||||
// self as *const _,
|
||||
// JobState::from_u8(state as u8).unwrap()
|
||||
// );
|
||||
spin.spin();
|
||||
}
|
||||
}
|
||||
|
@ -582,7 +577,7 @@ mod job {
|
|||
Ordering::Relaxed,
|
||||
) {
|
||||
Ok(state) => {
|
||||
assert_eq!(state, JobState::Empty as usize);
|
||||
debug_assert_eq!(state, JobState::Empty as usize);
|
||||
// set waker to None
|
||||
unsafe {
|
||||
(&mut *self.err_or_link.get()).waker = ManuallyDrop::new(None);
|
||||
|
@ -590,7 +585,7 @@ mod job {
|
|||
return;
|
||||
}
|
||||
Err(state) => {
|
||||
assert_ne!(state, JobState::Empty as usize);
|
||||
debug_assert_ne!(state, JobState::Empty as usize);
|
||||
|
||||
eprintln!("######## what the sigma?");
|
||||
spin.spin();
|
||||
|
@ -603,7 +598,7 @@ mod job {
|
|||
// SAFETY: self is non-null
|
||||
unsafe {
|
||||
let (ptr, state) = self.harness_and_state.ptr_and_tag(Ordering::Relaxed);
|
||||
assert_eq!(state, JobState::Pending as usize);
|
||||
debug_assert_eq!(state, JobState::Pending as usize);
|
||||
|
||||
let harness: unsafe fn(*const (), *const Self) = mem::transmute(ptr.as_ptr());
|
||||
let this = (*self.val_or_this.get()).this;
|
||||
|
@ -622,11 +617,11 @@ mod job {
|
|||
Ordering::Relaxed,
|
||||
) {
|
||||
Ok(state) => {
|
||||
assert_eq!(state, JobState::Pending as usize);
|
||||
debug_assert_eq!(state, JobState::Pending as usize);
|
||||
break;
|
||||
}
|
||||
Err(state) => {
|
||||
assert_ne!(state, JobState::Pending as usize);
|
||||
debug_assert_ne!(state, JobState::Pending as usize);
|
||||
spin.spin();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue