#pi #share #pi-share

nightly pi_share

rc, arc, lock, atomic

11 unstable releases (3 breaking)

0.4.4 Sep 23, 2022
0.4.3 Sep 22, 2022
0.4.1 Aug 23, 2022
0.3.0 Aug 23, 2022
0.1.0 Feb 28, 2022

#206 in Memory management

Download history 78/week @ 2023-01-26 117/week @ 2023-02-02 53/week @ 2023-02-09 137/week @ 2023-02-16 154/week @ 2023-02-23 83/week @ 2023-03-02 30/week @ 2023-03-09 34/week @ 2023-03-16 12/week @ 2023-03-23 40/week @ 2023-03-30 36/week @ 2023-04-06 20/week @ 2023-04-13 4/week @ 2023-04-20 75/week @ 2023-04-27 65/week @ 2023-05-04 18/week @ 2023-05-11

163 downloads per month
Used in 14 crates (9 directly)

MIT/Apache

32KB
981 lines

封装了与共享相关的数据结构,可通过编译条件指定是单线程共享还是多线程共享。

例如,Share类型,通过控制编译条件,可转换为Arc或Rc


lib.rs:

默认 不带 任何 feature

提供五个类型:ShareShareWeak,,ShareMutex, ShareRwLockShareCell.

在feature="rc"时:

  • Share等同于std::rc::Rc
  • ShareWeak等同于std::rc::Weak
  • ShareMutex等同于LockCell(RefCell<T>)
  • ShareRwLock等同于LockCell(RefCell<T>)
  • ShareCell等同于std::cell::RefCell
  • ShareBool等同于UnsafeCell<bool>
  • ShareU8等同于UnsafeCell<u8>
  • ShareUsize等同于UnsafeCell<usize>
  • SharePtr等同于UnsafeCell<T>
  • ShareRefCell等同于Rc(RefCell<T>)

在feature="arc"时:

  • Share等同于std::sync::Arc,
  • ShareWeak等同于std::sync::Weak.
  • ShareMutex等同于parking_lot::Mutex
  • ShareRwLock等同于parking_lot::RwLock
  • ShareCell等同于cell::TrustCell
  • ShareBool等同于RefCell<bool>
  • ShareU8等同于RefCell<u8>
  • ShareUsize等同于RefCell<usize>
  • SharePtr等同于RefCell<T>
  • ShareRefCell等同于Arc(TrustCell<T>)

Dependencies

~0.4–5MB
~75K SLoC