atomicbox 0.4.0

Safe atomic pointers to boxed data.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
extern crate atomicbox;

use atomicbox::AtomicBox;
use std::rc::Rc;

fn main() {
    let rc_main = Rc::new("Hello, world!");
    let rc_other = Rc::clone(&rc_main);

    let abox = AtomicBox::new(Box::new(rc_other));
    let handle = std::thread::spawn(move || {
        //~^ ERROR `Rc<&str>` cannot be sent between threads safely
        let value = *abox.into_inner();
        println!("Other thread: {:?}", value);
    });
    handle.join().unwrap();
    println!("Main Thread: {:?}", rc_main);
}