From e2d5208025ee389f27cee3b67f04ff1f38b70d3d Mon Sep 17 00:00:00 2001
From: Janis <janis@nirgendwo.xyz>
Date: Thu, 20 Feb 2025 20:25:10 +0100
Subject: [PATCH] make assertions debug only

---
 src/praetor/mod.rs | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/src/praetor/mod.rs b/src/praetor/mod.rs
index e3a0e5f..76cb588 100644
--- a/src/praetor/mod.rs
+++ b/src/praetor/mod.rs
@@ -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();
                     }
                 }