8 个版本 (4 个破坏性更新)

0.4.3 2019年11月14日
0.4.2 2019年11月14日
0.4.1 2019年10月28日
0.4.0 2019年5月14日
0.0.0 2018年6月19日

#73#mutable

Download history 8/week @ 2024-03-19 12/week @ 2024-03-26 35/week @ 2024-04-02 9/week @ 2024-04-09 9/week @ 2024-04-16 9/week @ 2024-04-23 8/week @ 2024-04-30 13/week @ 2024-05-07 19/week @ 2024-05-14 17/week @ 2024-05-21 55/week @ 2024-05-28 13/week @ 2024-06-04 15/week @ 2024-06-11 9/week @ 2024-06-18 10/week @ 2024-06-25 15/week @ 2024-07-02

每月51次下载
用于 breezy-timer

MIT 许可证

17KB
278

类型级别的安全可变全局访问,支持递归不可变锁定。

use global::Global;

// The global value.
static VALUE: Global<i32> = Global::new();

// Spawn 100 threads and join them all.
let mut threads = Vec::new();

for _ in 0..100 {
    threads.push(std::thread::spawn(|| {
        *VALUE.lock_mut().unwrap() += 1;
    }));
}

for thread in threads {
    thread.join().unwrap();
}

// This value is guaranteed to be 100.
assert_eq!(*VALUE.lock().unwrap(), 100);

依赖

~0.6–11MB
~108K SLoC