#interrupt #signals #disable #signal #without #no-alloc

no-std interrupt-mutex

用于与中断处理程序或信号处理程序共享数据的互斥锁

1 个不稳定版本

0.1.0 2023年10月8日

983Unix APIs 中排名

Download history 3/week @ 2024-03-13 11/week @ 2024-03-27 137/week @ 2024-04-03 231/week @ 2024-04-10 204/week @ 2024-04-17 46/week @ 2024-04-24 198/week @ 2024-05-01 120/week @ 2024-05-08 180/week @ 2024-05-15 162/week @ 2024-05-22 43/week @ 2024-05-29 200/week @ 2024-06-05 92/week @ 2024-06-12 244/week @ 2024-06-19 228/week @ 2024-06-26

779 每月下载量
2 个crate中使用 (通过 hermit-sync)

MIT/Apache

9KB
51 代码行数(不含注释)

interrupt-mutex

Crates.io docs.rs CI

用于与中断处理程序或信号处理程序共享数据的互斥锁。

// Make a mutex of your choice into an `InterruptMutex`.
type InterruptMutex<T> = interrupt_mutex::InterruptMutex<parking_lot::RawMutex, T>;

static X: InterruptMutex<Vec<i32>> = InterruptMutex::new(Vec::new());

fn interrupt_handler() {
    X.lock().push(1);
}

let v = X.lock();
// Raise an interrupt
raise_interrupt();
assert_eq!(*v, vec![]);
drop(v);

// The interrupt handler runs

let v = X.lock();
assert_eq!(*v, vec![1]);
drop(v);

有关API文档,请参阅文档

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确表示,否则根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,都应双重许可如上所述,无需附加条款或条件。

依赖项

~2MB
~38K SLoC