1 个不稳定版本
0.1.0 | 2023年10月8日 |
---|
983 在 Unix APIs 中排名
779 每月下载量
在 2 个crate中使用 (通过 hermit-sync)
9KB
51 代码行数(不含注释)
interrupt-mutex
用于与中断处理程序或信号处理程序共享数据的互斥锁。
// 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 License, Version 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确表示,否则根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,都应双重许可如上所述,无需附加条款或条件。
依赖项
~2MB
~38K SLoC