#reference #static #share #thread #global #ref #function

global-ref

一个通过静态变量在函数间共享引用的crate。

1 个不稳定版本

0.1.0 2022年1月3日

#27#ref

MIT 许可协议

8KB
148

global-ref

概述

此crate用于通过静态变量在函数间共享引用。

由于实现内部将原始指针转换为usize并在线程间共享,获取引用本质上是不安全的。如果您使用此crate,请在使用之前请验证其安全性。

示例

use std::thread;
use global_ref::GlobalMut;

fn main() {
    static GLOBAL: GlobalMut<i32> = GlobalMut::new();

    let mut content = 0;

    GLOBAL.with(&mut content, || {
        fn add_one() {
            *GLOBAL.get_mut() += 1;
        }

        let handle = thread::spawn(add_one);
        handle.join().unwrap();
        assert_eq!(*GLOBAL.get(), 1);
    });

    assert!(GLOBAL.try_get().is_none());
}

许可协议

MIT

依赖项

~50KB