diff options
| author | Nils Fitinghoff <nils.fitinghoff@mobilaris.se> | 2023-08-22 17:42:52 +0200 |
|---|---|---|
| committer | Henrik Tjäder <henrik@tjaders.com> | 2023-08-25 05:07:13 +0000 |
| commit | 609f14b1e4f169eb639025a5edefbb64afebf816 (patch) | |
| tree | b25c81a652ee85210517e26e3c9acfd404279e51 /rtic-sync | |
| parent | bca8f0815b3d96c4727299f452778e8765c03f8f (diff) | |
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.
Diffstat (limited to 'rtic-sync')
| -rw-r--r-- | rtic-sync/CHANGELOG.md | 2 | ||||
| -rw-r--r-- | rtic-sync/src/channel.rs | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/rtic-sync/CHANGELOG.md b/rtic-sync/CHANGELOG.md index 70fd388..90c4817 100644 --- a/rtic-sync/CHANGELOG.md +++ b/rtic-sync/CHANGELOG.md @@ -13,6 +13,8 @@ For each category, *Added*, *Changed*, *Fixed* add new entries at the top! ### Fixed +- `make_channel` no longer requires the user crate to have `critical_section` in scope + ## [v1.0.1] - 2023-06-14 ### Fixed 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"); } |
