diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 004a5ecc25..650fc533da 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -482,7 +482,7 @@ jobs: - name: Run cargo test working-directory: ./rtic-channel - run: cargo test --test tests + run: cargo test --features testing # Run test suite testsmonotonics: diff --git a/rtic-channel/src/lib.rs b/rtic-channel/src/lib.rs index 1077b5a6e2..eafa25c3bf 100644 --- a/rtic-channel/src/lib.rs +++ b/rtic-channel/src/lib.rs @@ -140,7 +140,7 @@ struct LinkPtr(*mut Option>); impl LinkPtr { /// This will dereference the pointer stored within and give out an `&mut`. - unsafe fn get(&self) -> &mut Option> { + unsafe fn get(&mut self) -> &mut Option> { &mut *self.0 } } @@ -203,9 +203,9 @@ impl<'a, T, const N: usize> Sender<'a, T, N> { let mut link_ptr: Option> = None; // Make this future `Drop`-safe, also shadow the original definition so we can't abuse it. - let link_ptr = LinkPtr(&mut link_ptr as *mut Option>); + let mut link_ptr = LinkPtr(&mut link_ptr as *mut Option>); - let link_ptr2 = link_ptr.clone(); + let mut link_ptr2 = link_ptr.clone(); let dropper = OnDrop::new(|| { // SAFETY: We only run this closure and dereference the pointer if we have // exited the `poll_fn` below in the `drop(dropper)` call. The other dereference @@ -532,7 +532,7 @@ mod tests { #[tokio::test] async fn stress_channel() { - const NUM_RUNS: usize = 1_000; + const NUM_RUNS: usize = 1_000000; const QUEUE_SIZE: usize = 10; let (s, mut r) = make_channel!(u32, QUEUE_SIZE);