From 609f14b1e4f169eb639025a5edefbb64afebf816 Mon Sep 17 00:00:00 2001 From: Nils Fitinghoff Date: Tue, 22 Aug 2023 17:42:52 +0200 Subject: ritc-sync: Fix make_channel forcing dependency into user crate Before, `make_channel` assumed that `critical_section` would be available in the namespace of the code that invoked the macro. Access `critical_section` through `rtic-sync` instead. --- rtic-sync/src/channel.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'rtic-sync/src') diff --git a/rtic-sync/src/channel.rs b/rtic-sync/src/channel.rs index 06a6639..61ae7e2 100644 --- a/rtic-sync/src/channel.rs +++ b/rtic-sync/src/channel.rs @@ -9,6 +9,8 @@ use core::{ sync::atomic::{fence, Ordering}, task::{Poll, Waker}, }; +#[doc(hidden)] +pub use critical_section; use heapless::Deque; use rtic_common::waker_registration::CriticalSectionWakerRegistration as WakerRegistration; use rtic_common::{ @@ -108,7 +110,7 @@ macro_rules! make_channel { static CHECK: ::core::sync::atomic::AtomicU8 = ::core::sync::atomic::AtomicU8::new(0); - critical_section::with(|_| { + $crate::channel::critical_section::with(|_| { if CHECK.load(::core::sync::atomic::Ordering::Relaxed) != 0 { panic!("call to the same `make_channel` instance twice"); } -- cgit v1.2.3