Руст разделение памяти между потоками - PullRequest
2 голосов
/ 11 октября 2019

Я пытаюсь поделиться обработчиком (для связи через веб-сокет) и его свойствами между различными потоками, используя 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, я хочу использовать это тогда, есть идеи, как мне это сделать?

...