aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNils Fitinghoff <nils.fitinghoff@mobilaris.se>2023-08-22 17:42:52 +0200
committerHenrik Tjäder <henrik@tjaders.com>2023-08-25 05:07:13 +0000
commit609f14b1e4f169eb639025a5edefbb64afebf816 (patch)
treeb25c81a652ee85210517e26e3c9acfd404279e51
parentbca8f0815b3d96c4727299f452778e8765c03f8f (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.
-rw-r--r--rtic-sync/CHANGELOG.md2
-rw-r--r--rtic-sync/src/channel.rs4
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");
}