Я пытаюсь поделиться обработчиком (для связи через веб-сокет) и его свойствами между различными потоками, используя Mutex и Arc.
let shared_server = Arc::new(Mutex::new(Server { out: None }));
let c_shared_server = shared_server.clone();
thread::spawn(move || {
listen(format!("{}:{}", String::from("127.0.0.1"), 3012), |out| {
c_shared_server.lock().unwrap().out = Some(out.clone());
move |msg| {
Ok(())
}
}).unwrap()
});
let ten_millis = time::Duration::from_millis(1000);
thread::sleep(ten_millis);
println!("{:?}", shared_server.lock().unwrap());
Server {out: None}
здесь не должно быть None, я хочу использовать это тогда, есть идеи, как мне это сделать?