make assertions debug only

This commit is contained in:
Janis 2025-02-20 20:25:10 +01:00
parent 37e8a6e721
commit e2d5208025

View file

@ -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();
}
}