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

no-std interrupt-ref-cell

一个用于在同一线程上与中断处理程序或信号处理程序共享数据的 RefCell

1 个不稳定版本

0.1.1 2023年10月11日
0.1.0 2023年10月8日

#809 in Unix APIs

MIT/Apache

38KB
421 lines

interrupt-ref-cell

Crates.io docs.rs CI

一个用于在同一线程上与中断处理程序或信号处理程序共享数据的 RefCell

use interrupt_ref_cell::{InterruptRefCell, LocalKeyExt};
 
thread_local! {
    static X: InterruptRefCell<Vec<i32>> = InterruptRefCell::new(Vec::new());
}
 
fn interrupt_handler() {
    X.with_borrow_mut(|v| v.push(1));
}

X.with_borrow(|v| {
    // Raise an interrupt
    raise_interrupt();
    assert_eq!(*v, vec![]);
});
 
// The interrupt handler runs
 
X.with_borrow(|v| assert_eq!(*v, vec![1]));

有关API文档,请参阅文档

许可证

根据以下其中之一获得许可

根据您的选择。

贡献

除非您明确声明,否则您提交的任何有意包含在作品中的贡献,根据Apache-2.0许可证的定义,应按上述方式双许可,不附加任何额外条款或条件。

依赖关系

~1.5MB
~35K SLoC