File tree Expand file tree Collapse file tree 3 files changed +3
-11
lines changed
Expand file tree Collapse file tree 3 files changed +3
-11
lines changed Original file line number Diff line number Diff line change 6262//! It is perfectly permissible to use the `executor-thread` feature from embassy-executor on
6363//! Zephyr, within the following guidelines:
6464//!
65- //! - The executor is incompatible with the async executor provided within [`crate::kio`], and
66- //! because there are no features to enable this, this functions will still be accessible. Be
67- //! careful. You should enable `no-kio` in the zephyr crate to hide these functions.
6865//! - This executor does not coordinate with the scheduler on Zephyr, but uses an
6966//! architecture-specific mechanism when there is no work. On Cortex-M, this is the 'wfe'
7067//! instruction, on riscv32, the 'wfi' instruction. This means that no tasks of lower priority
7471//!
7572//! ## Caveats
7673//!
77- //! The executor provided by Embassy is fundamentally incompatible with the executor provided by
78- //! this crate's [`crate::kio`] and [`crate::work::futures`]. Trying to use the functionality
79- //! provided by operations, such as [`Semaphore::take_async`], will generally result in a panic.
80- //! These routines are conditionally compiled out when `executor-zephyr` is enabled, but there is no
81- //! way for this crate to detect the use of embassy's `executor-threaded`. Combining these will
82- //! result in undefined behavior, likely difficult to debug crashes.
74+ //! The executor currently doesn't support async waits on Zephyr primitives, such as Semaphore.
8375//!
8476//! [`Semaphore::take_async`]: crate::sys::sync::Semaphore::take_async
8577
Original file line number Diff line number Diff line change @@ -231,7 +231,7 @@ pub trait ObjectInit<T> {
231231 /// Initialize the object.
232232 ///
233233 /// This is called upon first use. The address given may (and generally will) be different than
234- /// the initial address given to the `setup` call in the [`ZephyrObject::new `] constructor.
234+ /// the initial address given to the `setup` call in the [`ZephyrObject::new_raw `] constructor.
235235 /// After this is called, all subsequent calls to [`ZephyrObject::get`] will return the same
236236 /// address, or panic.
237237 fn init ( item : * mut T ) ;
Original file line number Diff line number Diff line change @@ -33,7 +33,7 @@ mod pinweak {
3333
3434 /// Safe Pinned Weak references.
3535 ///
36- /// Pin<Arc<T>> can't be converted to/from Weak safely, because there is know way to know if a given
36+ /// ` Pin<Arc<T>>` can't be converted to/from Weak safely, because there is know way to know if a given
3737 /// weak reference came from a pinned Arc. This wraps the weak reference in a new type so we know
3838 /// that it came from a pinned Arc.
3939 ///
You can’t perform that action at this time.
0 commit comments