1 个不稳定版本
0.1.1 | 2023年10月11日 |
---|---|
0.1.0 |
|
#809 in Unix APIs
38KB
421 lines
interrupt-ref-cell
一个用于在同一线程上与中断处理程序或信号处理程序共享数据的 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 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许可证的定义,应按上述方式双许可,不附加任何额外条款或条件。
依赖关系
~1.5MB
~35K SLoC