Embassy Sync — Crate 詳細
Embassy Sync
Beta no_std
Embassy 向けの同期プリミティブ(Mutex、Signal、Channel 等)を提供。no_std 環境でのタスク間通信・排他制御を想定した設計。
Synchronization primitives for Embassy async applications (Mutex, Signal, Channel, etc.).
コード例
タスク間で単発の値を通知する例です。
#![no_std]
use embassy_sync::signal::Signal;use embassy_sync::blocking_mutex::raw::NoopRawMutex;
static SIG: Signal<NoopRawMutex, u32> = Signal::new();
pub async fn sender() { SIG.signal(42);}
pub async fn receiver() { let v = SIG.wait().await; let _ = v;}