summaryrefslogtreecommitdiff
path: root/examples/basic-sticky.rs
blob: e982b1de83581e8764b555683e321c1eecd5c9dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use std::thread;

use fragile::Sticky;

fn main() {
    fragile::stack_token!(tok);

    // creating and using a fragile object in the same thread works
    let val = Sticky::new(true);
    println!("debug print in same thread: {:?}", &val);
    println!("try_get in same thread: {:?}", val.try_get(tok));

    // once send to another thread it stops working
    thread::spawn(move || {
        fragile::stack_token!(tok);
        println!("debug print in other thread: {:?}", &val);
        println!("try_get in other thread: {:?}", val.try_get(tok));
    })
    .join()
    .unwrap();
}