#static #mutex #leak #rwlock #ffi

no-std static_leak

从静态 Mutex 和 RwLock 中泄漏具有静态生命周期的引用

1 个不稳定版本

0.1.0 2022年11月10日

#2790 in Rust 模式

MIT/Apache

9KB
120

static_leak

Build Status codecov badge License: MIT License: Apache 2.0

此软件包扩展了MutexRwLock,将具有静态生命周期的引用包装起来以泄漏这些原始底层引用。当通过 FFI 与遗留 C 项目交互时,这可以在不使用任何不安全代码的情况下安全地获取静态可变引用。

lazy_static! {
    static ref VAR: RwLock<i8> = RwLock::new(42);
}

fn bar(_: &'static mut i8) {}

fn main() {
    bar(RwLockWriteGuard::leak(VAR.write().unwrap()));
}

此软件包支持以下软件包的实现,这些实现通过相应的功能标志激活

  • std
  • async-std
  • spin

依赖关系

~0–13MB
~107K SLoC