ref-kman 0.0.2

Shared reference like Mutex
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use std::{cell::UnsafeCell, sync::atomic};

pub struct RefInner<T> {
    pub(crate) cell: UnsafeCell<T>,
    pub(crate) lock: atomic::AtomicU32,
}

impl<T> RefInner<T> {
    pub(crate) fn new(data: T) -> Self {
        let data = UnsafeCell::new(data);
        Self {
            cell: data,
            lock: atomic::AtomicU32::new(0),
        }
    }
}