| 1 | use std::thread; |
| 2 | |
| 3 | use fragile::Sticky; |
| 4 | |
| 5 | fn main() { |
| 6 | fragile::stack_token!(tok); |
| 7 | |
| 8 | // creating and using a fragile object in the same thread works |
| 9 | let val = Sticky::new(true); |
| 10 | println!("debug print in same thread: {:?}" , &val); |
| 11 | println!("try_get in same thread: {:?}" , val.try_get(tok)); |
| 12 | |
| 13 | // once send to another thread it stops working |
| 14 | thread::spawn(move || { |
| 15 | fragile::stack_token!(tok); |
| 16 | println!("debug print in other thread: {:?}" , &val); |
| 17 | println!("try_get in other thread: {:?}" , val.try_get(tok)); |
| 18 | }) |
| 19 | .join() |
| 20 | .unwrap(); |
| 21 | } |
| 22 | |